zoukankan      html  css  js  c++  java
  • WPF 学习之控件模板 ControlTemplate Triggers

    控件模板ControlTemplate,有两部分:VistualTree视觉树,即是能看到的外观;Trigger触发器,里面包括外部条件达到某一条件下会引起的响应。
    <Window.Resources> <ControlTemplate x:Key="ButtonTempalted" TargetType="{x:Type Button}"> <Border Name="Border" BorderThickness="2" CornerRadius="3" BorderBrush="AliceBlue" Background="Aqua" TextBlock.Foreground="White"> <ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="Center" VerticalAlignment="Center" > </ContentPresenter> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True" > <Setter TargetName="Border" Property="Background" Value="Red"></Setter> </Trigger> <Trigger Property="IsPressed" Value="True"> <Setter TargetName="Border" Property="Background" Value="White"></Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Window.Resources> <StackPanel Margin="5"> <Button Margin="5" Padding="3">Normal Button</Button> <Button Margin="5" Padding="3" Name="myBorder" Template="{StaticResource ResourceKey=ButtonTempalted}">Templated Button</Button> </StackPanel>
    以上xml中描述
    StackPanel 中添加了2个Button控件,一个不使用控件模板Normal Button 一个使用ButtonTempalted 控件模板资源
    控件模板中包含视覚树 和触发器,在上述例子中我设置了 该控件模板目标类型为Button 在外观设置中设置buuton的Border的外观属性 
    需要注意的是如果仅如下设置border外观,buuton控件不能正常显示,此时还需要设置ContentPresenter内容表示器 设置内容元素的属性
     <Border Name="Border" BorderThickness="2" CornerRadius="3" BorderBrush="AliceBlue" Background="Aqua" TextBlock.Foreground="White">
                    
                </Border>

    Trigger 触发器设置控件模板的行为

     <Trigger Property="IsMouseOver" Value="True" >
                        <Setter TargetName="Border"   Property="Background" Value="Red"></Setter>
                    </Trigger>

    需要设置 Property 行为目标 Value触发该行为的值 

  • 相关阅读:
    Linux
    《移动群智感知网络》阅读笔记
    JAVA小记
    数据结构第十章:内部排序
    数据结构第九章:查找
    Oracle 物化视图(materialized view)
    Oracle Function 开启事务以及Update返回更新成功条数
    oracle存储过程的update并获取结果记录
    单例模式实现Demo
    winform BackgroundWorker组件操作
  • 原文地址:https://www.cnblogs.com/houzf/p/10258559.html
Copyright © 2011-2022 走看看