1、創建一個WPF(Windows Presentation Foundation)應用程序
使用“WPF應用程序”模板

2、將控件添加到窗體
將控件從“工具箱”拖放到窗體

3、更新窗體或控件的屬性
在設計視圖中單擊窗體或控件。然后選擇以下操作之一:
A、在“屬性”窗口(按F4打開)中,選擇想要更改的屬性,并輸入新值
B、在XAML窗格中,在<Window>元素或者定義了控件的其它元素中指定屬性和值

4、查看窗體背后的代碼
選擇以下操作之一:
A、選擇“視圖”|“代碼”
B、在設計視圖中右擊,然后從彈出的快捷菜單中選擇“查看代碼”
C、在解決方案資源管理器中,展開窗體的.xaml文件,然后雙擊下面的.xaml.cs文件

5、定義一組互斥的單選按鈕
在窗體上添加一個面板控件,例如StackPanel。將單選按鈕添加到面板中。同一個面板中的所有單選按鈕都是互斥的。

6、處理控件或窗體的事件
在XAML窗格中,添加代碼來指定事件(例如輸入Closing=''),然后從快捷菜單中,要么選擇一個現有的事件處理方法(要有正確的簽名),要么選擇<新建事件處理程序>命令。然后,在事件方法中寫代碼來處理事件。

7、為WPF窗體創建一個菜單
添加一個DockPanel控件,把它放在窗體頂部。然后在DockPanel控件中添加一個Menu控件。

8、在菜單中添加菜單項
為Menu控件添加MenuItem元素。設置Header屬性來指定菜單項的顯示文件。為了指定菜單項的訪問快捷鍵,可以在字母前面添加一個下劃線字符。

9、在菜單中創建一條分隔線
為菜單添加一個Seperator元素。

10、單擊菜單項后執行一個操作
選擇菜單項,然后為Click事件指定一個事件方法。將你的代碼添加到事件方法中。

11、創建快捷菜單
在Windows資源(<Window.Sources>...</Window.Sources>)中添加一個ContextMenu。采取和在普通菜單中添加菜單項一樣的方式,在快捷菜單中添加菜單項。

12、將快捷菜單關聯到窗體或控件
設置窗體或控件的ContextMenu屬性,讓這個屬性引用快捷菜單。

13、動態創建快捷式菜單
創建一個ContextMenu對象。使用定義了每個菜單項的MenuItem對象來填充這個對象的Items集合(使用Items.Add方法)。設置窗體或控件的ContextMenu屬性,使之引用這個ContextMenu。

14、提示用戶指定要保存到哪個文件中
使用SaveFileDialog類。使用ShowDialog方法來顯示對話框。對話框關閉后,FileName屬性就包含了用戶選擇的文件名。

15、使用數據綁定技術,將窗體控件的屬性與對象的屬性綁定
在控件屬性的XAML代碼中,添加<Binding>元素來指定綁定源(一個對象)以及要和對象中的哪個屬性綁定。如:
<TextBox ...>
  <TextBox.Text>
    <Binding Source="{StaticResource customerData}"
      Path="ForeName" />
  </TextBox.Text>
</TextBox>

16、允許一個數據綁定對用戶輸入的數據進行校驗
為<Binding>元素添加<Binding.ValidationRules>子元素。如:
<Binding Source="{StaticResource customerData}" Path="ForeName" />
  <Binding.ValidationRules>
    <ExceptionValidationRules />
  </Binding.ValidationRules>
</Binding>

17、采用使用記不反感的方式顯示錯誤信息
定義一個樣式,它負責檢測對控件的Validation.HasError屬性的更改,并將控件的ToolTip屬性設為異常所返回的消息。將此樣式應用于需要校驗的所有控件。如:
<Style x:Key="errorStyle" TargetType="Control">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="True">
                    <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self},Path=(Validation.Errors)[0].ErrorContent}" />
                </Trigger>
            </Style.Triggers>
           
        </Style>

18、在程序控制下校驗所有控件,而不是在用戶從一個控件切換到另一個控件時進行校驗
在定義綁定的XAML代碼中,將UpdateSourceTrigger屬性設為"Explicit",從而將校驗推遲到應用程序明確要求進行校驗的時候。為了標準化所有控件的數據,請為每個控件的已綁定的屬性創建一個BindingExpression對象,并調用該對象的UpdateSource方法。檢查每個BindingExpression對象的HasError屬性。如果這個屬性為true,表明校驗失敗。