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 回答