原创 Binding的數據轉換(Data Converter)

當Source端Path所關聯的數據與Target端目標屬性數據類型不一致時,添加數據轉換器(Data Converter), 簡單的數據轉換(如double轉string)WPF類庫會自動轉換。 手動轉換時需要手

原创 Binding數據校驗

Binding的ValidationRules屬性類型是Collection<ValidationRule>,可以爲每個Binding這隻多個數據校驗條件, 每個條件是一個ValidationRule類型對象。Validation

原创 獲得由ControlTemplate或DataTemplate生成的控件的內部控件

由ControlTemplate或DataTemplate生成的控件都是“由Template生成的控件”。ControlTemplate和DataTemplate兩個類均派生子FrameworkTemplate類,這個類有個名爲FindN

原创 獲取ItemsControl裏面的控件

ItemsControl通過Binding獲得數據,每個數據的模板在DataTemplate裏面,直接查找DateTemplate裏的控件獲取不到。可以在ItemsControl的ItemContainerGenerator.Status

原创 Style

Style中的Setter Setter,設置器。Setter類的Property屬性用來指名目標的屬性, Value爲其提供屬性值,如果想設置控件的ControlTemplate,只需要把Setter的Property設爲Templat

原创 介紹WPF中DependencyProperty的一些基本用法

轉自:http://blog.sina.com.cn/s/blog_6130c4c40100e7ud.html 這一篇Post中,我準備先介紹WPF中DependencyProperty的一些基本用法。 在程序中使用Dependency

原创 WPF繪圖

WPF的基本圖形包括以下幾個: Line:直線段,可以設置觸筆(Stroke) Rectangle:矩形,既有觸筆,又有填充(Fill) Ellicps:橢圓,長寬相等即爲正圓,既有觸筆又有填充 Polygon:多邊形,由多條直線段

原创 Calendar控件改變日期後,使其自動失去焦點

Canlendar在改變日期是,在想點擊其他地方需要點擊兩次,第一次相當於先失去焦點,第二次纔可選中其他控件。這樣非常不方便,我們可以在calendar_SelectedDatesChanged中,添加如下代碼,使其自動失去焦點,可直接選

原创 WPF DataTemplate

WPF中引入模板(Template)將數據和算法的“內容”與“形式”解耦。WPF:中Template分爲兩大類:ControlTemplate和DataTemplate。 下面詳細介紹DataTemplate: DataTemplat

原创 RoutedEventArgs的Source與OriginalSource

路由事件是沿着VisualTree傳遞。VisualTree與LogicalTree區別在於:LogicalTree的葉子是構成用戶界面的控件,而VisualTree要連接控件中的細微結構也算上。 “路由事件在VisualTree上傳遞”

原创 WPF資源

WPF程序中數據就分爲四個等級存儲:數據庫裏的數據,資源文件裏的數據,WPF對象裏的數據,變量中的數據。 一、WPF對象級資源的定義與查找 每個WPF的界面元素都具有一個名爲Resources的屬性,這個屬性繼承自FrameworkEl

原创 WPF系統中的命令系統

事件不具有約束力,命令與事件的區別就在於命令具有約束力。 命令的使用大概分爲以下幾步: (1)、創建命令類:即獲得一個實現ICommand接口的類,如果命令與具體業務邏輯無關則使用WPF類庫中的RoutedCommand類即可。如果

原创 命令參數

命令庫裏有很多WPF預製命令,如New、Open、Copy、Cut、Paste等。這些命令都是ApplicationCommands類的靜態屬性,所以實例永遠只有一個,那麼這時候就需要用CommandPrameter屬性。 下面實現連個按

原创 ControlTemplate

ControlTemplate主要有兩大用武之地: 1. 通過更換ControlTemplate改變控件外觀,使之具有更優的用戶體驗及外觀。 2. 藉助ControlTemplate,程序員與設計師可以並行工作,程序員可以先用WPF標

原创 ObservableCollection和List與INotifyPropertyChanged的使用

ObservableCollection和List的使用場合,分以下四種情況: 1.最簡單的是隻用List<T>,T不實現INotifyPropertyChanged接口,適用於一次性綁定,適用於重新實例化整個List集合的綁定。 2.