WPF快速指導2:模板

WPF快速指導2:模板
??? 本文摘要:
??? 1:模板作用;
??? 2:樣式模板;
??? 3:數據模板;
??? 4:如何使用ControlTemplate;
??? 5:如何使用DataTemplate;

?

一:模板作用
??? 1:樣式模板,在應用程序內部維護和共享外觀;
??? 2:數據模板,實現表現形式和邏輯的分離;


二:樣式模板

??? 如:
??? 片段1:???

    <Style TargetType="TextBlock"><Setter Property="HorizontalAlignment" Value="Center" /><Setter Property="FontFamily" Value="Comic Sans MS"/><Setter Property="FontSize" Value="14"/></Style>

??? 以上的樣式模板用于對頁面范圍內TextBlock進行規范。注意Style中一個屬性關鍵字BaseOn,如:
片段2???
   <Style BasedOn="{StaticResource {x:Type TextBlock}}"TargetType="TextBlock"x:Key="TitleText">……</Style>

??? 這個屬性標識是指如上的風格基于片段1,同時進行拓展。
關于樣式模板需要注意的幾個方面:
1:如果有多個 Setter 對 Style 的同一屬性進行設置,則最后聲明的 Setter 優先;
2:以編程方式設置屬性,textblock1.Style = (Style)(this.Resources["TitleText"]);


三:數據模板

??? 數據模板的作用就是實現表現形式和邏輯的分離。
??? 查看如下的代碼片段,
??? 片段3:????

    <ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}" >            </ListBox>

??? 這就意味著這個ListBox的數據源是資源中定義的MyPhotos數據源,如下:
??? 片段4????

    <Window.Resources><ObjectDataProvider x:Key="MyPhotos" ObjectType="{x:Type local:PhotoList}"/></Window.Resources>

??? 這個資源定義中有一個Package名local,我們如下定義:
??? xmlns:local="clr-namespace:WpfApplication2"
??? 同時也指定了數據源的類型為PhotoList,即存在類為PhotoList以及PhotoList所對應的Item,類Photo。
??? 在UI呈現的時候,需要為MyPhotos動態添加數據,添加數據的代碼如下:

        PhotoList Photos;private void WindowLoaded(object sender, RoutedEventArgs e){Photos = (PhotoList)(this.Resources["MyPhotos"] as ObjectDataProvider).Data;Photos.Path = "...\\...\\Images";}

??? 注意,以上代碼如果運行的話,ListBox呈現的是Photo的ToString()。要按照我們的需求顯示實際的圖片,仍舊需要定義DataTemplate,即
??? 片段5:

<DataTemplate DataType="{x:Type local:Photo}">
<Border Margin="3">
<Image Source="{Binding Source}"/>
</Border>
</DataTemplate>

四:如何使用ControlTemplate
??? WPF 中的許多控件都使用 ControlTemplate 來定義控件的結構和外觀,這樣可將控件外觀和控件功能分離開。 重新定義控件的 ControlTemplate 可以徹底改變控件的外觀。使用ControlTemplate還可以創建自定義控件,在這里不做贅述。
??? 改變現有控件的一個典型例子如下:????

       <Style TargetType="Button"><!--Set to true to not get any properties from the themes.--><Setter Property="OverridesDefaultStyle" Value="True"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Button"><Grid><Ellipse Fill="{TemplateBinding Background}"/><ContentPresenter HorizontalAlignment="Center"VerticalAlignment="Center"/></Grid></ControlTemplate></Setter.Value></Setter></Style>

五:如何使用DataTemplate

??? DataTemplate 可用于自定義數據在控件上的顯示方式。除了自定義數據外觀之外,DataTemplate 還可以包含 UI 元素,這樣大大增加了自定義 UI 的靈活性。DataTemplate的用法見下一章。


本文轉自最課程陸敏技博客園博客,原文鏈接:http://www.cnblogs.com/luminji/archive/2011/01/09/1931392.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

五個最佳媒體格式轉換器

我們經常會遇到下載的視頻文件格式不對&#xff0c;無法在其他播放設備&#xff08;如手機、DVD&#xff09;中使用的問題&#xff0c;現在&#xff0c;我們介紹五個功能強大且易于使用的媒體轉換器&#xff0c;用于轉換不同類型的視頻文件。   Super (Windows) Super是一個免…

【機器學習】六種算法在人臉補全中的應用比較(K緊鄰,線性,決策樹,嶺回歸,套索回歸,ElasticNet)

需求&#xff1a; 根據人的上半邊臉預測下半邊臉&#xff0c;用各種算法取得的結果與原圖比較 思考&#xff1a; 這是一個回歸問題&#xff0c;不是分類問題&#xff08;人臉數據不固定&#xff09; 數據集一共包含40個人&#xff0c;每一個人10張照片&#xff0c;分布規律 每…

性能優化之NSDateFormatter

為什么要優化NSDateFormatter&#xff1f;首先&#xff0c;過度的創建NSDateFormatter用于NSDate與NSString之間轉換&#xff0c;會導致App卡頓&#xff0c;打開Profile工具查一下性能&#xff0c;你會發現這種操作占CPU比例是非常高的。據官方說法&#xff0c;創建NSDateForma…

QuickTime文件格式解析

QuickTime文件格式解析Peter Lee 2008-06-14 一、簡介 QuickTime是Apple公司開發的一套完整的多媒體平臺架構&#xff0c;可以用來進行多種媒體的創建&#xff0c;生產&#xff0c;和分發&#xff0c;并為這一過程提供端到端的支持&#xff1a;包括媒體的實時捕捉&#xff0c;…

python的數據類型轉換

數據類型轉換 將數據由當前類型變化為其他類型的操作就是數據類型轉換。數據類型轉換分為兩類&#xff0c;分別是自動數據類型轉換 和 強制數據類型轉換。 自動轉換(隱式轉換) 自動轉換時程序根據運算要求進行的轉換&#xff0c;不許要人工干預。 1.自動類型轉換不需要人工干…

Linux文件屬性及如何修改文件屬性

ls -al:顯示文件的文件名與相關屬性并列出所有文件詳細的權限與屬性 dr-xr-x---. 7 root root 4096 Apr3 12:31 . 權限 連接 所有者 用戶組 文件容量 修改日期 文件名 第一個字符代表這個文件是“目錄&#xff0c;文件&#x…

SyntaxError:identifier starts immediately after numeric literal

1、錯誤描寫敘述2、錯誤原因因為在改動方法傳參的過程&#xff0c;須要傳個id&#xff0c;可是這個id是字符串類型&#xff0c;傳入的是數值型3、解決的方法在傳參時&#xff0c;須要加入“”&#xff0c;變成字符串類型User.modify("id");

python中的運算和運算符

運算和運算符 運算&#xff1a; 由一個以上的值經過變化得到新值得過程&#xff0c;就是運算。 運算符&#xff1a; 用于運算的符號&#xff0c;就是運算符 運算的分類&#xff1a; 1.算數運算 2.比較運算/關系運算 3.賦值運算 4.邏輯運算 5.位運算 6.成員運算 7.身份運算算術…

【數據分析】reshape(-1,1)和numpy的廣播機制

在創建DataFrame的時候常常使用reshape來更改數據的列數和行數。 reshape可以用于numpy庫里的ndarray和array結構以及pandas庫里面的DataFrame和Series結構。 源數據 reshape函數 reshape&#xff08;行&#xff0c;列&#xff09;可以根據指定的數值將數據轉換為特定的行數和…

藍橋杯-組素數-java

/* (程序頭部注釋開始) * 程序的版權和版本聲明部分 * Copyright (c) 2016, 廣州科技貿易職業學院信息工程系學生 * All rights reserved. * 文件名稱&#xff1a; 藍橋杯賽題 * 作 者&#xff1a; 彭俊豪 * 完成日期&#xf…

AVI文件規范

AVI文件規范PeterLee 2007-10-14 一、AVI文件簡介 AVI的英文全稱為Audio Video Interleaved&#xff0c;即音頻視頻交錯格式&#xff0c;是將語音和影像同步組合在一起的文件格式。AVI于1992年被Microsoft公司推出&#xff0c;隨Windows3.1一起被人們所認識和熟知。AVI文件格式…

python中的流程控制

流程控制 流程&#xff1a; 計算機執行代碼的順序&#xff0c;就是流程。 流程控制&#xff1a; 對計算機代碼執行順序的控制&#xff0c;就是流程控制。 流程分類&#xff1a; 流程控制一共分為三類&#xff0c;分別是 順序結構、分支(選擇)結構、循環結構。 順序結構 順序…

tomcat jdbc SlowQueryReport的實現解讀

為什么80%的碼農都做不了架構師&#xff1f;>>> ##序 tomcat提供了JdbcInterceptor可以用來監控jdbc的執行情況&#xff0c;默認提供了好幾個現成的interceptor可以用&#xff0c;SlowQueryReport以及SlowQueryReportJmx就是其中的兩個。 ##JdbcInterceptor的基本原…

【機器學習】Bagging和Boosting的區別(面試準備)

Baggging 和Boosting都是模型融合的方法&#xff0c;可以將弱分類器融合之后形成一個強分類器&#xff0c;而且融合之后的效果會比最好的弱分類器更好。 Bagging: 先介紹Bagging方法&#xff1a; Bagging即套袋法&#xff0c;其算法過程如下&#xff1a; 從原始樣本集中抽取訓…

python中的循環結構

循環結構 循環結構可以減少源程序重復書寫的工作量(代碼量)&#xff0c;用來描述重復執行某段算法的問題&#xff0c;這是程序設計中最能發揮計算機特長的程序結構。 Python中循環結構分為兩類&#xff0c;分別是 while 和 for .. in while 格式1&#xff1a; num1,num2 3…

線性判別結合源碼分析LDA原理

1. LDA的思想 LDA線性判別分析也是一種經典的降維方法&#xff0c;LDA是一種監督學習的降維技術&#xff0c;也就是說它的數據集的每個樣本是有類別輸出的。這點和PCA不同。PCA是不考慮樣本類別輸出的無監督降維技術。LDA的思想可以用一句話概括&#xff0c;就是“投影后類內方…

RIFF文件規范

RIFF文件規范Peter Lee 2007-10-02 摘要&#xff1a;RIFF全稱為資源互換文件格式&#xff08;Resources Interchange File Format&#xff09;&#xff0c;RIFF文件是windows環境下大部分多媒體文件遵循的一種文件結構&#xff0c;常見的如WAV文件、AVI文件等。RIFF可以看成一種…

FB宣布將回購60億美元股票 首席會計官將離職

11月19日消息&#xff0c;據美國媒體報道&#xff0c;Facebook宣布將回購60億美元股票&#xff0c;回購計劃將在明年第一季度開始實施。另外&#xff0c;該公司還宣布首席會計官賈斯艾特瓦爾將離職。 短期回購股票可使Facebook贏得時間&#xff0c;緩解投資長期項目如Instagram…

2017小目標

最美人間四月天&#xff0c;沒有三月的傲寒&#xff0c;沒有五月的燥熱&#xff0c;桃花剛偷去了紅&#xff0c;楊柳在風中扭著腰&#xff0c;櫻花正開的爛漫。工作繁忙之余。做一下深呼吸&#xff0c;沾衣欲濕杏花雨&#xff0c;吹面不含楊柳風。不知不覺2017第一季度已經結束…

【機器學習】feature_importances_ 參數源碼解析

在用sklearn的時候經常用到feature_importances_ 來做特征篩選&#xff0c;那這個屬性到底是啥呢。 分析源碼發現來源于每個base_estimator的決策樹的 feature_importances_ 由此發現計算邏輯來源于cython文件&#xff0c;這個文件可以在其github上查看源代碼 而在DecisionTree…