[英]Change color of circle button when clicked in WPF
我有此按钮的XAML代码。 我需要此按钮只是一个纯色圆圈。
<Button x:Name="btn_Color" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" Height="25" Width="25" BorderBrush="Black">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Fill="Black"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
我希望该按钮在单击时可以更改颜色,并能够将此代码重用于其他按钮。 我将在以后将颜色用于其他用途,因此我需要能够访问该数据。 我试图将PreviewMouseDown事件添加到Ellipse并更改(Ellipse)sender
上的属性,但是即使添加x:Name
属性,也无法访问Ellipse的颜色。 我该如何实现? 谢谢! :)
您可以使用此代码来实现所需的功能。 这至少是一个起点:
<Button x:Name="btn_Color" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" Height="25" Width="25">
<Button.Style>
<Style TargetType="Button">
<Setter Property="BorderBrush" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="BorderBrush" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Fill="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=Button}}"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
这样,您就可以将BorderBrush绑定到其他颜色或DependencyProperty,然后从另一个位置进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.