0

我现在遇到 WPF/Xaml 样式问题:

我正在尝试创建一个可以显示文本或路径图标的通用按钮。当按钮悬停时,路径应更改其“填充”属性。

我目前的方法允许使用控件模板资源来为路径设置颜色样式,但是当鼠标悬停在按钮上时我无法更改它。当前样式代码如下所示:

<Style TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border
                    x:Name="Border"
                    Background="{TemplateBinding Background}"
                    BorderThickness="0"
                    Padding="2">
                    <ContentPresenter
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            Margin="{TemplateBinding Padding}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                            RecognizesAccessKey="True" />
                </Border>
                <ControlTemplate.Resources>
                    <Style TargetType="{x:Type Path}" BasedOn="{StaticResource {x:Type Path}}">
                        <Setter Property="Fill" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Foreground}" />
                    </Style>
                </ControlTemplate.Resources>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsPressed" Value="True">

                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="{StaticResource HoveredDarkBackgroundBrush}"/>
                        <Setter Property="Foreground" Value="#d0d0d0" />
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">

                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Background" Value="{StaticResource DarkBackgroundBrush}" />
    <Setter Property="Foreground" Value="#c4c4c4" />
</Style>

我知道我需要更改控件模板触发器中的颜色,但我不明白如何将颜色应用于路径。有人可以给我一些提示或解决方案的路径吗?

问候菲利克斯

PS.:样式按钮如下所示:

<Button ToolTip="...">
    <Path Data="..." />
</Button>
4

0 回答 0