iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C# WPF如何反射加载Geometry几何图形数据图标
  • 922
分享到

C# WPF如何反射加载Geometry几何图形数据图标

2024-04-02 19:04:59 922人浏览 泡泡鱼
摘要

目录为什么要用Geometry数据做图标?怎么获取Geometry数据?如何使用Geometry数据相信大家在阅读WPF相关GitHub开源项目源码时都会看见一串串这种数据 这种G

相信大家在阅读WPF相关GitHub开源项目源码时都会看见一串串这种数据

这种Geometry数据就是几何图形数据

为什么要用Geometry数据做图标?

有一种做法是使用ttf字体文件代替,不过使用ttf字体文件会出现下面几个缺点:
1、团队协作不便于管理
2、需要依赖特定平台
3、无法灵活使用
而使用Geometry的话,我们可以将这些几何图形数据存入资源字典ResourceDictionary
通过反射进行灵活使用,团队开发可共同维护

怎么获取Geometry数据?

我们进入https://www.iconfont.cn/官网,找到心仪的图标,点击F12将鼠标放在该图标区域,找到网页元素

Path标签内的d属性即Geometry数据

如何使用Geometry数据

创建资源字典,并加入命名空间

将Geometry数据存入< Geometry x:Key="t_chart" o:Freeze="true" >< /Geometry >标签内
t_chart即资源名称key
可能会有小伙伴注意到了o:Freeze这个属性,下面是MSDN上的原文

A class that derives from Freezable gains the following features:
Special states: a read-only (frozen) state and a writable state.
Thread safety: a frozen Freezable object can be shared across threads.
Detailed change notification: Unlike other DependencyObject objects, a Freezable object provides change notifications when sub-property values change.
Easy cloning: the Freezable class has already implemented several methods that produce deep clones.
翻译后:
从Freezable派生的类具有以下功能:
特殊状态:只读(冻结)状态和可写状态。
线程安全:冻结的Freezable对象可以在线程之间共享。
详细的更改通知:与其他DependencyObject对象不同,Freezable对象在子属性值更改时提供更改通知。
易于克隆:Freezable类已经实现了几种产生深层克隆的方法。

随后在App.xaml中加入


<ResourceDictionary Source="Resources/Themes/Geometries.xaml" />

这样我们就可以在全局的XAML代码中通过{StaticResource t_Demo}使用Geometry数据

那么肯定会有小伙伴问了,如果想使用MVVM前后台分离开发怎么办?(在C#代码中动态使用Geometry)
下面是反射加载Geometry的示例
将资源文件存入静态类中


namespace Demo.Resources.Themes
{
  public static class LocalTheme
  {
    public static ResourceDictionary Dic = new ResourceDictionary { Source = new Uri(@"Resources/Themes/Geometries.xaml", UriKind.Relative) };
  }
}

使用资源字典(Geometry)LocalTheme.Dic["t_chart"],t_chart即资源字典中的key值


var chart = new HandyControl.Controls.TabItem()
{
	Header="图表",
	Content = xamlModel
};
chart.SetValue(IconElement.GeometryProperty, (Geometry)LocalTheme.Dic["t_chart"]);

SetValue即设置附加属性
public void SetValue(DependencyProperty dp, object value);
中的value为Geometry

以上就是C# WPF如何反射加载Geometry几何图形数据图标的详细内容,更多关于WPF 反射加载图标的资料请关注编程网其它相关文章!

--结束END--

本文标题: C# WPF如何反射加载Geometry几何图形数据图标

本文链接: https://www.lsjlt.com/news/122510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C# WPF如何反射加载Geometry几何图形数据图标
    目录为什么要用Geometry数据做图标?怎么获取Geometry数据?如何使用Geometry数据相信大家在阅读WPF相关GitHub开源项目源码时都会看见一串串这种数据 这种G...
    99+
    2024-04-02
  • WPF使用Geometry绘制几何图形
    在WPF的DrawingContext对象中,提供了基本的绘制椭圆和矩形的API:DrawEllipse和DrawRectangle。但是,这些是远远不够用的,我们在日常应用中,更多...
    99+
    2024-04-02
  • C++ opencv如何实现几何图形绘制
    这篇“C++ opencv如何实现几何图形绘制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++ op...
    99+
    2023-06-30
  • win7桌面图标加载慢如何解决
    加载慢可能是由于系统资源占用过多或者硬盘问题导致的。以下是一些可能的解决方法: 清理桌面:将桌面上的不常用或不必要的图标移动到其...
    99+
    2023-10-21
    win7
  • C#中如何使用反射和动态加载程序集
    C#中如何使用反射和动态加载程序集引言:在C#中,反射(Reflection)是一种强大的机制,它允许我们在运行时获取和操作程序的元数据,包括类型信息、成员信息等。而动态加载程序集则是通过反射来实现的一种常见应用,并且在一些特定场景中非常有...
    99+
    2023-10-22
    C# 反射 动态加载
  • 数据库navicat如何加图片
    这篇文章给大家分享的是有关数据库navicat如何加图片的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。1、首先登录navicat for mysql到指定数据库。2、创建测试表:...
    99+
    2024-04-02
  • 如何解决layer图标icon不加载的问题
    这篇文章将为大家详细讲解有关如何解决layer图标icon不加载的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。之前在项目中使用layer弹框感觉体验很好,这次的项目...
    99+
    2024-04-02
  • C++ 函数库如何处理图形和界面?
    c++++ 函数库提供了多种图形和界面处理工具,包括:sfml(跨平台 2d 图形和音频库):用于开发精灵驱动的 2d 游戏和媒体播放器。qt(跨平台图形用户界面框架):用于开发桌面应用...
    99+
    2024-04-18
    界面 图形 c++
  • Vue Element-ui如何实现树形控件节点添加图标
    本篇内容主要讲解“Vue Element-ui如何实现树形控件节点添加图标”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue Element-ui如何实现树形控件节点添加图...
    99+
    2023-06-21
  • MySQL数据库中如何添加图片
    在MySQL数据库中,通常不会直接存储图片文件,而是在数据库中存储图片的路径或者链接。可以通过以下步骤在MySQL数据库中添加图片:...
    99+
    2024-04-09
    MySQL
  • 如何解决Android中Glide与CircleImageView加载圆形图片的问题
    这篇文章将为大家详细讲解有关如何解决Android中Glide与CircleImageView加载圆形图片的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 不使用占位符注释掉这两句代码即可。.pl...
    99+
    2023-05-30
    glide
  • C++技术中的大数据处理:如何使用图形数据库存储和查询大规模图数据?
    c++++ 技术可通过利用图形数据库处理大规模图数据。具体步骤包括:创建 tinkergraph 实例,添加顶点和边,制定查询,获取结果值,并将结果转换为列表。 C++ 技术中的大数据...
    99+
    2024-05-11
    图数据库 大数据处理 apache c++
  • C#如何实现图表中鼠标移动并显示数据
    这篇文章将为大家详细讲解有关C#如何实现图表中鼠标移动并显示数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下效果图:首先在页面上添加一个label控件并 默认隐藏:给该图表添加MouseMo...
    99+
    2023-06-29
  • Linux非图形界面如何安装oracle数据库
    这篇文章主要介绍了Linux非图形界面如何安装oracle数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。注释:   一个...
    99+
    2024-04-02
  • Android开发如何实现webview中img标签加载本地图片
    这篇文章主要介绍Android开发如何实现webview中img标签加载本地图片,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:在网上查了很多教程,感觉很麻烦,各种方法,最后实践很简单,主要是两步:WebSe...
    99+
    2023-05-30
    android webview
  • 如何使用R语言实现数据可视化绘图bar chart条形图
    这篇文章主要为大家展示了“如何使用R语言实现数据可视化绘图bar chart条形图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用R语言实现数据可视化绘图bar cha...
    99+
    2023-06-29
  • Oracle数据库及图形化界面如何安装配置
    这篇文章主要介绍Oracle数据库及图形化界面如何安装配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先在电脑D盘(或者其他不是C盘的磁盘,一般软件不会安装到C盘,否则会拖慢电脑...
    99+
    2024-04-02
  • 如何通过php函数优化图片懒加载效果?
    随着互联网的发展,网页中的图片数量越来越多,这给页面加载速度带来了压力。为了提高用户体验,减少加载时间,我们可以采用图片懒加载技术。图片懒加载可以延迟图片的加载,只有当用户滚动到可视区域时才加载图片,这样可以减少页面的加载时间,提升用户体验...
    99+
    2023-10-21
    优化 PHP函数 图片懒加载
  • Android如何将Glide动态加载不同大小的图片切圆角与圆形
    这篇文章主要介绍了Android如何将Glide动态加载不同大小的图片切圆角与圆形,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Glide加载动态图片首先我们先要去依赖一个g...
    99+
    2023-05-30
    android glide
  • 如何通过php接口和ECharts实现统计图的数据动态加载
    如何通过PHP接口和ECharts实现统计图的数据动态加载【引言】随着数据可视化越来越受到企业和开发者的重视,统计图的应用越来越广泛。ECharts作为一款开源的JavaScript图表库,提供了丰富的图表类型和交互手段,结合PHP接口,可...
    99+
    2023-12-17
    echarts PHP接口 数据动态加载
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作