我有此按钮的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>
我希望此按钮在单击时可以更改颜色,并能够将此代码重用于其他按钮。我将在以后将颜色用于其他用途,因此我需要能够访问该数据。
我试图向Ellipse添加一个PreviewMouseDown事件并更改(Ellipse)sender
上的属性,但是即使我将其添加为x:Name
属性也无法访问Ellipse的颜色。我该如何实现?谢谢! :)
答案 0 :(得分:0)
您可以使用此代码实现所需的功能。这至少是一个起点:
<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,然后从另一个位置进行更改。