How to change a path fill (on a button) with triggers in XAML How to change a path fill (on a button) with triggers in XAML wpf wpf

How to change a path fill (on a button) with triggers in XAML


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>