Что не так с этим ContentTemplate? - PullRequest
2 голосов
/ 30 января 2009

Я получаю сообщение об ошибке для этого шаблона содержимого в стиле: «Необходимо указать и свойство, и значение для Setter» Разве я этим не занимаюсь?

<Style x:Key="LinkButton" TargetType="Button">
<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="Button">
            <ContentPresenter/>
        </ControlTemplate>
    </Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
    <Setter.Value>
        <DataTemplate>
            <Label x:Name="ContentRoot">
                <StackPanel Orientation="Horizontal">
                    <Viewbox Width="24" Height="24" VerticalAlignment="Center">
                        <Image x:Name="ButtonImage" Source="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=Tag}" />
                    </Viewbox>
                    <TextBlock VerticalAlignment="Center" x:Name="ButtonText" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=Content}"></TextBlock>
                </StackPanel>
            </Label>
            <DataTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter TargetName="ButtonText" Property="TextBlock.TextDecorations" Value="Underline"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </Setter.Value>
</Setter>

А вот кнопка, которая будет использовать этот стиль:

<Button Name="HelpButton" Style="{StaticResource LinkButton}" Height="30" Content="Help" Tag="Help.png"/>

Спасибо!

1 Ответ

0 голосов
/ 30 января 2009

Я загрузил это и у меня нет таких проблем. Единственная проблема, которую я вижу, заключается в том, что к вашей кнопке никогда не будет применен стиль. Это потому, что если вы хотите применить стиль, вам нужно удалить x: Key из стиля. В противном случае, если вы хотите, чтобы стиль применялся только к HelpButton, определение должно выглядеть следующим образом:

<Button Name="HelpButton" Style="{StaticResource LinkButton}" Height="30" Content="Help" Tag="Help.png"/>

Но я не вижу ошибки, которую вы видите.

...