0

現在、WPF/Xaml スタイルに問題があります。

テキストまたはパス アイコンを表示できる一般化されたボタンを作成しようとしています。ボタンがホバーされると、パスは「Fill」プロパティを変更する必要があります。

私の現在のアプローチでは、コントロール テンプレート リソースを使用してパスを色でスタイル設定できますが、マウスがボタンの上にあるときに変更することはできません。現在のスタイル コードは次のようになります。

<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