最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

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

將Geometry數(shù)據(jù)存入< Geometry x:Key="t_chart" o:Freeze="true" >< /Geometry >標(biāo)簽內(nèi)
t_chart即資源名稱key
可能會(huì)有小伙伴注意到了o:Freeze這個(gè)屬性,下面是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對象可以在線程之間共享。
詳細(xì)的更改通知:與其他DependencyObject對象不同,F(xiàn)reezable對象在子屬性值更改時(shí)提供更改通知。
易于克隆:Freezable類已經(jīng)實(shí)現(xiàn)了幾種產(chǎn)生深層克隆的方法。

隨后在App.xaml中加入

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

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

那么肯定會(huì)有小伙伴問了,如果想使用MVVM前后臺(tái)分離開發(fā)怎么辦?(在C#代碼中動(dòng)態(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ù)圖標(biāo)的詳細(xì)內(nèi)容,更多關(guān)于WPF 反射加載圖標(biāo)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#使用虛擬方法實(shí)現(xiàn)多態(tài)

    C#使用虛擬方法實(shí)現(xiàn)多態(tài)

    這篇文章主要介紹了C#使用虛擬方法實(shí)現(xiàn)多態(tài),涉及C#多態(tài)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • C#使用Socket發(fā)送和接收TCP數(shù)據(jù)實(shí)例

    C#使用Socket發(fā)送和接收TCP數(shù)據(jù)實(shí)例

    這篇文章主要介紹了C#使用Socket發(fā)送和接收TCP數(shù)據(jù)的實(shí)現(xiàn)方法,以實(shí)例的形式詳細(xì)講述了C#實(shí)現(xiàn)socket通信的完整實(shí)現(xiàn)過程,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#圖像處理之浮雕效果實(shí)現(xiàn)方法

    C#圖像處理之浮雕效果實(shí)現(xiàn)方法

    這篇文章主要介紹了C#圖像處理之浮雕效果實(shí)現(xiàn)方法,可實(shí)現(xiàn)圖片轉(zhuǎn)換成浮雕效果的功能,需要的朋友可以參考下
    2015-04-04
  • C#實(shí)現(xiàn)的陰歷陽歷互相轉(zhuǎn)化類實(shí)例

    C#實(shí)現(xiàn)的陰歷陽歷互相轉(zhuǎn)化類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的陰歷陽歷互相轉(zhuǎn)化類,結(jié)合實(shí)例形式分析了C#針對日期的轉(zhuǎn)換與計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • C#中winform窗體實(shí)現(xiàn)注冊/登錄功能實(shí)例(DBHelper類)

    C#中winform窗體實(shí)現(xiàn)注冊/登錄功能實(shí)例(DBHelper類)

    在編寫項(xiàng)目時(shí),編寫了一部分關(guān)于登錄頁面的一些代碼,下面這篇文章主要給大家介紹了關(guān)于C#中winform窗體實(shí)現(xiàn)注冊/登錄功能(DBHelper類)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 深入理解C#指針之美

    深入理解C#指針之美

    在C#中,有時(shí)候希望通過指針來操作內(nèi)存,這樣可以提高效率。我們可以用unsafe關(guān)鍵字修飾含有指針操作的程序段,感興趣的小伙伴可以參考一下,希望可以幫到你
    2021-07-07
  • C#完成word文檔打印的方法

    C#完成word文檔打印的方法

    在日常工作中,我們可能常常需要打印各種文件資料,比如word文檔。對于編程員,應(yīng)用程序中文檔的打印是一項(xiàng)非常重要的功能,也一直是一個(gè)非常復(fù)雜的工。這篇文章主要介紹了C#完成word文檔打印的方法,需要的朋友可以參考下
    2016-10-10
  • C#中托管DLL和非托管DLL的區(qū)別詳解

    C#中托管DLL和非托管DLL的區(qū)別詳解

    這篇文章主要介紹了C#中托管DLL和非托管DLL的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • winform中寫app.config文件時(shí)調(diào)試情況下沒有改變的原因

    winform中寫app.config文件時(shí)調(diào)試情況下沒有改變的原因

    讀取很簡單基本都用過 ConfigurationManager.AppSettings[""].ToString() 寫config不是很常用
    2013-02-02
  • 如何給C#變量取名字

    如何給C#變量取名字

    本文主要介紹了如何給C#變量取名字,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

万年县| 长寿区| 汝阳县| 交城县| 清远市| 九龙县| 洪雅县| 黔江区| 东安县| 宜春市| 辰溪县| 长岛县| 芜湖市| 江华| 南郑县| 西宁市| 城口县| 平顶山市| 沈丘县| 鸡西市| 民丰县| 尤溪县| 定兴县| 峨眉山市| 南昌县| 秦安县| 卓尼县| 旌德县| 甘孜县| 元氏县| 黄冈市| 彩票| 昆山市| 松滋市| 广河县| 法库县| 卢氏县| 务川| 辽源市| 建湖县| 望城县|