我有一个按钮的 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 并从另一个地方更改它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句