博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

WPF--控件模版

Posted on 2011-05-06 23:24  linFen  阅读(620)  评论(0编辑  收藏  举报

控件模版ControlTemplate就是设置控件的外观,比如我们常见到的按钮是下面这样的,但是我们如何改变成圆形的呢?

imageimage

 

01 <Window x:Class="DeepXAML.MainWindow"
03         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04         xmlns:local="clr-namespace:DeepXAML"       
05         xmlns:sys="clr-namespace:System;assembly=mscorlib"
06         Title="MainWindow" Height="250" Width="450">
07     <Window.Resources>
08         <Style x:Key="roundButton" TargetType="Button">
09             <Setter Property="Background">
10                 <Setter.Value>
11                     <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
12                         <LinearGradientBrush.GradientStops>
13                             <GradientStop Offset="0.0" Color="#fff" />
14                             <GradientStop Offset="1.0" Color="Red" />
15                         </LinearGradientBrush.GradientStops>
16                     </LinearGradientBrush>
17                 </Setter.Value>
18             </Setter>
19             <Setter Property="Template">
20                 <Setter.Value>
21                     <ControlTemplate TargetType="Button">
22                         <Grid>
23                             <Ellipse Fill="{TemplateBinding Background}"></Ellipse>
24                             <ContentPresenter Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center" />                        </Grid>                   
25                     </ControlTemplate>
26                 </Setter.Value>
27             </Setter>
28         </Style>    
29     </Window.Resources>
30     <StackPanel x:Name="stackPanel">
31         <Button Width="200" Height="120" Margin="20" Style="{StaticResource ResourceKey=roundButton}">OK</Button>
32     </StackPanel>
33 </Window>

ItemsControl有个PanelTemplate可以控制ItemsControl的条目容器