WPF学习:控件的模板

WPF中的控件模板: WPF的每个控件都有一个默认的模版,是对控件的描述,我们可以自定义模板来体会控件的默认模板,打造个性化控件。 于Style不同,Style智能改变控件的已有属性值来控制,但是模板可以改变控件的内部结构(视觉树)。 首先是声明一个ControlTemplate对象,对其进行相应的配置,将ControlTemplate赋值给控件的
  

  WPF中的控件模板:

  WPF的每个控件都有一个默认的模版,是对控件的描述,我们可以自定义模板来体会控件的默认模板,打造个性化控件。

  于Style不同,Style智能改变控件的已有属性值来控制,但是模板可以改变控件的内部结构(视觉树)。

  首先是声明一个ControlTemplate对象,对其进行相应的配置,将ControlTemplate赋值给控件的Template属性。

  可以复制看看代码:

<Button Content="看看我的变化" Height="59" HorizontalAlignment="Left" Margin="99,88,0,0" Name="button1" 
VerticalAlignment=
"Top" Width="94" Background="#FFB4AEFC">
            <Button.Template>
                <ControlTemplate>
                    <!--定义视觉树-->
                    <Grid>
                        <Ellipse Height="{TemplateBinding Control.Height}"
                                Fill=
"{TemplateBinding Button.Background}"
                                 Width=
"{TemplateBinding Button.Width}" />
                        <TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"
                                   VerticalAlignment=
"Center"
                                   HorizontalAlignment=
"Center"
                                   Text=
"{TemplateBinding Button.Content}"
                                   /
>
                    </Grid>
                    <!--定义视觉树结束-->
                    <!--定义触发器-->
                    <ControlTemplate.Triggers>
                        <Trigger Property="Button.IsMouseOver" Value="True">
                            <Setter Property="Button.Foreground" Value="Red"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                    <!--定义触发器结束-->
                </ControlTemplate>
            </Button.Template>
        </Button>

  运行结果:

  

  运行的效果

 

  

  鼠标移上去的变化

 

  这个就是给Button按钮写的模板出来的效果。

posted @ 2012-04-07 12:43  JunBird  阅读(2182)  评论(0编辑  收藏  举报