WPF:在鼠标左键边框更改背景颜色下来 [英] WPF: Change background color of border on left mouse button down

查看:566
本文介绍了WPF:在鼠标左键边框更改背景颜色下来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不要害怕关闭,则问题很简单!

下面是一个样式我在应用程序中使用的按钮。现在,我试图改变其名称的边框元素的背景颜色背景当用户用点击鼠标左键的按钮。

我该怎么办呢?

 <风格的TargetType ={X:类型按钮}>
    < setter属性=模板>
        < Setter.Value>
            <的ControlTemplate的TargetType ={X:类型按钮}>
                < BORDER BorderBrush =#6e6964了borderThickness =1CornerRadius =1保证金={TemplateBinding保证金}SnapsToDevicePixels =真>
                    < BORDER = BorderBrush白了borderThickness =1CornerRadius =1SnapsToDevicePixels =真>
                        < BORDER =填充12,4,12,4SnapsToDevicePixels =真NAME =背景>
                            < Border.Background>
                                <一个LinearGradientBrush StartPoint可以=0,0终点=0.1>
                                    <渐变停止颜色=白偏移量=0/>
                                    &所述;渐变停止颜色=#F1F1F1偏移=1/>
                                < /一个LinearGradientBrush>
                            < /Border.Background>
                            <内容presenter的Horizo​​ntalAlignment =中心VerticalAlignment =中心/>
                        < /边框>
                    < /边框>
                < /边框>
                < ControlTemplate.Triggers>
                    <触发属性=IsMouseOverVALUE =真>
                        < setter属性=背景的TargetName =背景>
                            < Setter.Value>
                                <一个LinearGradientBrush StartPoint可以=0,0终点=0.1>
                                    &所述;渐变停止偏移=0颜色=#edf8fb/>
                                    &所述;渐变停止偏移=1颜色=#e2edf0/>
                                < /一个LinearGradientBrush>
                            < /Setter.Value>
                        < /二传手>
                    < /触发>
                < /ControlTemplate.Triggers>
            < /控件模板>
        < /Setter.Value>
    < /二传手>
< /样式和GT;


解决方案

您只需要以下的属性的触发:

 < ControlTemplate.Triggers>
                <触发属性=是pressedVALUE =真>
                    < setter属性=背景的TargetName =背景VALUE =红/>
                < /触发>
            < /ControlTemplate.Triggers>

DON'T BE SCARED OFF, THE QUESTION IS SIMPLE!

Below is a style I use for buttons in my application. Now I'm trying to change the background color of the Border element that has the name "Background" when the user clicks the button with the left mouse button.

How do I do that?

<Style TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border BorderBrush="#6e6964" BorderThickness="1" CornerRadius="1" Margin="{TemplateBinding Margin}" SnapsToDevicePixels="True">
                    <Border BorderBrush="White" BorderThickness="1" CornerRadius="1" SnapsToDevicePixels="True">
                        <Border Padding="12,4,12,4" SnapsToDevicePixels="True" Name="Background">
                            <Border.Background>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Color="White" Offset="0"/>
                                    <GradientStop Color="#f1f1f1" Offset="1"/>
                                </LinearGradientBrush>
                            </Border.Background>
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                        </Border>
                    </Border>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" TargetName="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Offset="0" Color="#edf8fb"/>
                                    <GradientStop Offset="1" Color="#e2edf0"/>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

解决方案

You just need the following property trigger:

            <ControlTemplate.Triggers>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="Background" TargetName="Background" Value="Red"/>
                </Trigger>
            </ControlTemplate.Triggers>

这篇关于WPF:在鼠标左键边框更改背景颜色下来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆