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 に答える