3

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

在 MouseOver 上,我想更改 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>

现在,在这种情况下,ContentPresenter 是一个路径。有什么方法可以更改 XAML 中的 Path.Fill 颜色?

4

1 回答 1

2

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

Fill="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type RepeatButton}}}"
于 2012-06-05T07:59:29.223 回答