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

前端 未结 1 393
陌清茗
陌清茗 2020-12-10 03:40

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.

        

        
相关标签:
1条回答
  • 2020-12-10 04:33

    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>
    
    0 讨论(0)
提交回复
热议问题