Wpf 在模板中,我是否可以触发更改路径。当路径为ContentPresenter时填充?

Wpf 在模板中,我是否可以触发更改路径。当路径为ContentPresenter时填充?,wpf,templates,contentpresenter,Wpf,Templates,Contentpresenter,我有一个按钮模板,其中ContentPresenter实际上是一个路径 在鼠标悬停时,我想更改Path.Fill 请参见模板: <Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}"> <Setter Property="Template"> <Setter.Value> <ControlTempla

我有一个按钮模板,其中ContentPresenter实际上是一个路径

在鼠标悬停时,我想更改Path.Fill

请参见模板:

    <Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Border x:Name="Bd" BorderThickness="0" Background="Transparent" CornerRadius="2">
                        <ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" TargetName="Bd" Value="#666666"/>
                            <Setter Property="Control.Foreground" Value="#999999"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
<RepeatButton Style="{StaticResource spinButtonStyle}">
    <Path blah blah blah/>
</RepeatButton>

以及使用此模板的代码:

    <Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Border x:Name="Bd" BorderThickness="0" Background="Transparent" CornerRadius="2">
                        <ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" TargetName="Bd" Value="#666666"/>
                            <Setter Property="Control.Foreground" Value="#999999"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
<RepeatButton Style="{StaticResource spinButtonStyle}">
    <Path blah blah blah/>
</RepeatButton>


现在,在本例中,ContentPresenter是一个路径。是否有任何方法可以更改XAML中的Path.Fill颜色?

现在需要做的就是将Path Fill属性绑定到RepeatButton前景属性:

Fill="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type RepeatButton}}}"

我最终重构了两种不同的风格,但我认为你的解决方案也同样有效。但愿我早点看到。谢谢