美文网首页
Template简介

Template简介

作者: Lulus | 来源:发表于2017-12-31 14:50 被阅读0次

    分类

    1
    ControlTemplate
    ItemsPanelTemplate
    DataTemplate
    

    样式Style和模板Template对比

    Style:样式,风格
    Template:模版,某种控件长什么样子
    Style依赖原始控件,对控件的已有属性进行改造
    Template天马行空,实现对控件颠覆式的改造
    Style中可以包含Template

    Style嵌套Template

    <Window.Resources>
        <Style TargetType="CheckBox" x:Key="CheckBoxStyle">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="CheckBox">
                        <StackPanel>
                            <!--设置Rectangle边框的宽度和颜色,设置Rectangle的高宽-->
                            <Rectangle Name="breakRectangle" Stroke="Cyan" StrokeThickness="2" Width="20" Height="20">
                                <Rectangle.Fill>
                                    <!--默认Rectangle填充色为White-->
                                    <SolidColorBrush Color="White"></SolidColorBrush>
                                </Rectangle.Fill>
                            </Rectangle>
                            <!--没有ContentPresenter标签,则不保留原来的属性,显示不出文本-->
                            <!--TemplateBinding Padding,则绑定每个CheckBox自己的Margin,更灵活-->
                            <ContentPresenter Margin="{TemplateBinding Padding}"></ContentPresenter>
                        </StackPanel>
                        <ControlTemplate.Triggers>
                            <!--目标为breakRectangle,当IsChecked=true的时候,将填充色设置为CornflowerBlue-->
                            <Trigger Property="IsChecked" Value="True">
                                <Setter TargetName="breakRectangle" Property="Fill" Value="CornflowerBlue"></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <CheckBox Style="{StaticResource CheckBoxStyle}"></CheckBox>
    </Grid>
    

    示例代码

    https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Template/StyleUseTemplate

    相关文章

      网友评论

          本文标题:Template简介

          本文链接:https://www.haomeiwen.com/subject/ccgogxtx.html