如何使用 XAML 中的触发器更改路径填充(在按钮上) [英] How to change a path fill (on a button) with triggers in XAML
本文介绍了如何使用 XAML 中的触发器更改路径填充(在按钮上)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有路径作为图标的按钮,我想在鼠标悬停在整个按钮上时更改路径的填充(不仅仅是路径).谢谢.
I have a button with a path as icon,i want to change the fill of the path when the mouse is over the whole button (not only the path). Thanks.
<Button Name="Test_Button"
Width="220"
Height="80"
Padding="2">
<Canvas Width="76"
Height="76"
Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Canvas.Left="19"
Canvas.Top="19"
Width="38"
Height="38"
Data="F1 M 35,19L 41,19L 41,35L 57,35L 57,41L 41,41L 41,57L 35,57L 35,41L 19,41L 19,35L 35,35L 35,19 Z "
Stretch="Fill">
<Path.Style>
<Style TargetType="{x:Type Path}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Path.Fill" Value="Red" />
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Path.Fill" Value="Gray" />
</Trigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
</Canvas>
</Button>
推荐答案
您可以将 Path.Fill
绑定到 Foreground Button 的属性并修改 Button 样式中的 Foreground:
You may bind Path.Fill
to the Foreground property of the Button and modify the Foreground in a Button Style:
<Button Name="Test_Button" Width="220" Height="80" Padding="2">
<Canvas Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Canvas.Left="19" Canvas.Top="19" Width="38" Height="38" Stretch="Fill"
Fill="{Binding Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}}"
Data="F1 M 35,19L 41,19L 41,35L 57,35L 57,41L 41,41L 41,57L 35,57L 35,41L 19,41L 19,35L 35,35L 35,19 Z">
</Path>
</Canvas>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Foreground" Value="Gray" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
这篇关于如何使用 XAML 中的触发器更改路径填充(在按钮上)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文