欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# WPF如何反射加載Geometry幾何圖形數(shù)據(jù)圖標

 更新時間:2021年03月29日 08:52:03   作者:Stay627  
這篇文章主要介紹了C# WPF如何反射加載Geometry幾何圖形數(shù)據(jù)圖標,幫助大家更好的理解和學(xué)習使用c#,感興趣的朋友可以了解下

相信大家在閱讀WPF相關(guān)GitHub開源項目源碼時都會看見一串串這種數(shù)據(jù)

這種Geometry數(shù)據(jù)就是幾何圖形數(shù)據(jù)

為什么要用Geometry數(shù)據(jù)做圖標?

有一種做法是使用ttf字體文件代替,不過使用ttf字體文件會出現(xiàn)下面幾個缺點:
1、團隊協(xié)作不便于管理
2、需要依賴特定平臺
3、無法靈活使用
而使用Geometry的話,我們可以將這些幾何圖形數(shù)據(jù)存入資源字典ResourceDictionary
通過反射進行靈活使用,團隊開發(fā)可共同維護

怎么獲取Geometry數(shù)據(jù)?

我們進入https://www.iconfont.cn/官網(wǎng),找到心儀的圖標,點擊F12將鼠標放在該圖標區(qū)域,找到網(wǎng)頁元素

Path標簽內(nèi)的d屬性即Geometry數(shù)據(jù)

如何使用Geometry數(shù)據(jù)

創(chuàng)建資源字典,并加入命名空間

將Geometry數(shù)據(jù)存入< Geometry x:Key="t_chart" o:Freeze="true" >< /Geometry >標簽內(nèi)
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派生的類具有以下功能:
特殊狀態(tài):只讀(凍結(jié))狀態(tài)和可寫狀態(tài)。
線程安全:凍結(jié)的Freezable對象可以在線程之間共享。
詳細的更改通知:與其他DependencyObject對象不同,F(xiàn)reezable對象在子屬性值更改時提供更改通知。
易于克隆:Freezable類已經(jīng)實現(xiàn)了幾種產(chǎn)生深層克隆的方法。

隨后在App.xaml中加入

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

這樣我們就可以在全局的XAML代碼中通過{StaticResource t_Demo}使用Geometry數(shù)據(jù)

那么肯定會有小伙伴問了,如果想使用MVVM前后臺分離開發(fā)怎么辦?(在C#代碼中動態(tài)使用Geometry)
下面是反射加載Geometry的示例
將資源文件存入靜態(tài)類中

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即設(shè)置附加屬性
public void SetValue(DependencyProperty dp, object value);
中的value為Geometry

以上就是C# WPF如何反射加載Geometry幾何圖形數(shù)據(jù)圖標的詳細內(nèi)容,更多關(guān)于WPF 反射加載圖標的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法

    win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法

    這篇文章主要介紹了win7中C#的winForm編程使用savefiledialog不能彈出保存窗體的解決方法,涉及針對線程的調(diào)用問題,是比較實用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#使用System.Environment獲取電腦的相關(guān)屬性

    C#使用System.Environment獲取電腦的相關(guān)屬性

    這篇文章主要為大家詳細介紹了C#使用System.Environment獲取電腦的相關(guān)屬性,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解LINQ入門(下篇)

    詳解LINQ入門(下篇)

    這篇文章主要介紹了詳解LINQ入門(下篇),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-12-12
  • C#獲取指定年份第一個星期一具體日期的方法

    C#獲取指定年份第一個星期一具體日期的方法

    這篇文章主要介紹了C#獲取指定年份第一個星期一具體日期的方法,涉及C#日期與字符串操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#創(chuàng)建及讀取DAT文件操作

    C#創(chuàng)建及讀取DAT文件操作

    這篇文章主要介紹了C#創(chuàng)建及讀取DAT文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#算法之無重復(fù)字符的最長子串

    C#算法之無重復(fù)字符的最長子串

    這篇文章介紹了C#算法之無重復(fù)字符的最長子串,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C#簡單連接sql數(shù)據(jù)庫的方法

    C#簡單連接sql數(shù)據(jù)庫的方法

    這篇文章主要介紹了C#簡單連接sql數(shù)據(jù)庫的方法,涉及C#基于控制臺的數(shù)據(jù)庫連接創(chuàng)建于命令執(zhí)行相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • WPF使用WrapPanel實現(xiàn)虛擬化效果

    WPF使用WrapPanel實現(xiàn)虛擬化效果

    這篇文章主要為大家詳細介紹了如何利用WPF WrapPanel實現(xiàn)虛擬化效果,文中的示例代碼講解詳細,對我們學(xué)習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • C# 編碼好習慣,獻給所有熱愛c#的同志

    C# 編碼好習慣,獻給所有熱愛c#的同志

    c#編寫者,需要培養(yǎng)的一些好習慣
    2009-02-02
  • C#數(shù)據(jù)庫連接方式(類的形式)

    C#數(shù)據(jù)庫連接方式(類的形式)

    這篇文章主要介紹了C#數(shù)據(jù)庫連接方式(類的形式),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論