1 <Style x:Name="ButtonCircleStyle" TargetType="Button"> 2 <Setter Property="Width" Value="100"></Setter> 3 <Setter Property="Height" Value="100"></Setter> 4 <Setter Property="Template"> 5 <Setter.Value> 6 <ControlTemplate TargetType="Button"> 7 <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="50" Background="{TemplateBinding Background}"> 8 <ContentPresenter 9 VerticalAlignment="Center" 10 HorizontalAlignment="Center" 11 Content="{TemplateBinding Content}"/> 12 </Border> 13 </ControlTemplate> 14 </Setter.Value> 15 </Setter> 16 </Style>
1.這裏的Template屬性就是用來設置控件模板spa
2.ControlTemplate也要指定TargetType。code
3.TemplateBinding用來綁定父控件的屬性blog
4.ContentPresenter用來爲Button內容佔位(即Button的Content屬性顯示在該位置)get
1 <DataTemplate x:Name="DefaultDataTemplate"> 2 <TextBlock Text="{Binding}" Foreground="White"></TextBlock> 3 </DataTemplate>
1.使用DataTemplate很簡單,只須要設定它,而後賦值到CellTemplate, ContentTemplate, ItemTemplate .... 屬性下面便可it
2.使用時綁定ItemsControl(Listbox)的ItemTemplate屬性模板
<ItemsControl ItemTemplate="{StaticResource DefaultDataTemplate}" ItemsSource="{Binding Names}">
1 <Style x:Name="DefaultItemsControlStyle" TargetType="ItemsControl"> 2 <Setter Property="Template"> 3 <Setter.Value> 4 <ControlTemplate> 5 <Border Width="440" CornerRadius="20" BorderBrush="White" BorderThickness="2" Padding="20"> 6 <ItemsPresenter></ItemsPresenter> 7 </Border> 8 </ControlTemplate> 9 </Setter.Value> 10 </Setter> 11 <Setter Property="ItemTemplate"> 12 <Setter.Value> 13 <DataTemplate> 14 <TextBlock Text="{Binding}" Foreground="White"></TextBlock> 15 </DataTemplate> 16 </Setter.Value> 17 </Setter> 18 </Style>
1.ItemsPresenter用來爲ItemsControl的子項佔位class
2.ItemTemplate用來爲ItemsControl的子項設置數據模板List