【WPF】使用 XAML 的 Trigger 系统实现三态按钮_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 【WPF】使用 XAML 的 Trigger 系统实现三态按钮

【WPF】使用 XAML 的 Trigger 系统实现三态按钮

 2015/4/17 10:31:55  rizo  程序员俱乐部  我要评论(0)
  • 摘要:利用WPF的Trigger系统,也可以很简单的只使用xmal实现三态按钮。在Window或UserControl的资源中声明按钮的style并加入触发功能。使用的时候直接在button里复写style就可以了,废话不多说,直接上代码:<UserControl.Resources><Stylex:Key="threeStateButton"TargetType="{x:TypeButton}"><
  • 标签:实现 使用

利用 WPF 的 Trigger 系统,也可以很简单的只使用xmal实现三态按钮。在Window或UserControl的资源中声明按钮的style并加入触发功能。使用的时候直接在button里复写style就可以了,废话不多说,直接上代码:

class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"><UserControl.Resources>
        <Style x:Key="threeStateButton" TargetType="{x:Type Button}">
            <Setter Property="SnapsToDevicePixels" Value="True"/>
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <StackPanel Orientation="Horizontal" >
                            <Image Name="ImgBtnBg3" 
                                   Source="Skins/Default/action_normal.png" />
                        </StackPanel>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Source" 
                                        Value="Skins/Default/action_selected.png" 
                                        TargetName="ImgBtnBg3"/>
                            </Trigger>
                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Source" 
                                        Value="Skins/Default/action_active.png" 
                                        TargetName="ImgBtnBg3"/>
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="Source" 
                                        Value="Skins/Default/action_normal.png" 
                                        TargetName="ImgBtnBg3"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </UserControl.Resources>

 

使用时在button中引用:

<Button x:Name="m_btn" Content="Button" HorizontalAlignment="Center" Width="60" Height="60"
               VerticalAlignment="Center" Style="{StaticResource threeStateButton}"/>

发表评论
用户名: 匿名