0

以下の xaml は正常に動作します。

    <Style x:Key="TopButton" TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <Path Data="{StaticResource TopCube}" >
                        <Path.Style>
                            <Style>
                                <Setter Property="Path.Fill" Value="#414042" />
                                <Style.Triggers>
                                    <Trigger Property="Canvas.IsMouseOver" Value="True">
                                        <Setter Property="Path.Fill" Value="{StaticResource HoveredGradient}" />
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </Path.Style>
                    </Path>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

しかし、Value="#414042" を Value="{TemplateBinding Background}" に置き換えると、「背景が認識されません」というエラーが表示されます。Value="{TemplateBinding Button.Background}" に変更すると、正常にコンパイルされますが、Setter.Value でランタイム XAMLparseException が発生します。

ここで何が欠けていますか?

4

1 に答える 1

1

この場合、デフォルトを取得したい場合は、バインディングButton.Backgroundを使用する必要がありますTemplatedParent

<Setter Property="Path.Fill" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}" />
于 2015-04-24T12:47:14.127 に答える