C# 选择一个按钮时更改矩形背景
基本上,这是一个存在于矩形和几个文本块之外的按钮。矩形C# 选择一个按钮时更改矩形背景,c#,wpf,xaml,styles,C#,Wpf,Xaml,Styles,基本上,这是一个存在于矩形和几个文本块之外的按钮。矩形Fill表示我的按钮的背景。按下按钮时如何更改此设置 按下按钮后,背景也必须保持该颜色。这基本上可以直观地向用户显示哪些按钮被按下,哪些没有按下 我风格的一部分: <Style x:Key="ButtonStyleReg" TargetType="{x:Type myClasses:RegButton}"> <Setter Property="Template"> <Setter.Value>
Fill
表示我的按钮的背景。按下按钮时如何更改此设置
按下按钮后,背景也必须保持该颜色。这基本上可以直观地向用户显示哪些按钮被按下,哪些没有按下
我风格的一部分:
<Style x:Key="ButtonStyleReg" TargetType="{x:Type myClasses:RegButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="regButton">
<Rectangle Name="rectangleBtn" Fill="#FF89959A" Height="Auto" RadiusY="15" RadiusX="15" Stroke="White" Width="Auto"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsPressed" Value="True" >
<Setter TargetName="rectangleBtn" Property="Fill" Value="Blue" />
</Trigger>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="FontSize" Value="10.667"/>
您必须寻址正确的元素,尝试为矩形指定名称,并通过名称引用将setter指向该矩形:
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="regButton">
<Rectangle Fill="#FF89959A"
x:Name="rect"
Height="Auto"
RadiusY="15"
RadiusX="15"
Stroke="White"
Width="Auto" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused"
Value="True" />
<Trigger Property="IsDefaulted"
Value="True" />
<Trigger Property="IsPressed"
Value="True">
<Setter Property="Background"
TargetName="rect"
Value="Blue" />
<!--??-->
</Trigger>
<Trigger Property="IsEnabled"
Value="False" />
</ControlTemplate.Triggers>
</ControlTemplate>
我尝试过这个(编辑我的帖子),它确实会改变,但我如何保持填充颜色?似乎我不需要“isPressed”触发器。为此,必须使用ToggleButton
并在IsChecked
属性上设置触发器<代码>切换按钮记住其状态。一般来说,触发器在其更改时查找依赖项属性的值<代码>按钮。按下按钮时,所按下的更改一次,松开按钮时,更改第二次<代码>切换按钮。IsChecked是一种设置并保持的状态。您能举例说明吗?我以前从没听说过。我的按钮本质上已经是一个repeatButton(用于我的程序功能)。所以我想我不能就这样更改我的按钮?我已经更新了我的注释来解释触发器,并且检查了的
属性。在您的情况下,我想到的最简单的事情就是创建您自己的类,该类派生自RepeatButton
,并添加一个IsPressed
依赖属性。在此之后,您必须注意设置DPs值-您想在每次重复触发时打开鼠标(每次按下鼠标一次)还是每次打开鼠标?后者会将按钮变成迪斯科按钮,当然=)