Comment Appliquer Correctement un Style de Contenu Présentateur

Je travaille avec cette réponse à cette question sur boutons de lien:

https://stackoverflow.com/a/3564706/945

Le problème est que le TextDecoration de Souligner le style est uniquement appliquée à généré automatiquement TextBlocks.

<Button Style="{StaticResource LinkButton}">Text</Button> 

"Texte" est souligné

<Button Style="{StaticResource LinkButton}"><TextBlock Text='Text' /></Button> 

"Texte" n'est pas souligné

Pourquoi n'est-il pas d'appliquer à toute TextBlock dans le contenu?

C'est la partie pertinente de la style:

<Style x:Key="LinkButton" 
       TargetType="Button"
       BasedOn="{StaticResource ResourceKey={x:Type Button}}"
       >

    <Setter Property="Width" Value="Auto"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <ContentPresenter Content="{TemplateBinding Content}" 
                                  ContentTemplate="{TemplateBinding  ContentTemplate}"
                                  VerticalAlignment="Center"
                                  >
                    <ContentPresenter.Resources>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="TextDecorations" Value="Underline" />
                        </Style>
                    </ContentPresenter.Resources>
                </ContentPresenter>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Pourquoi êtes-vous de mettre un TextBlock à l'intérieur d'un Bouton? Le Bouton de classe a ses propres intégré dans le "Contenu" en matière de format et l'échelle de bien-vous pouvez également modifier la façon dont il le fait si facilement dans le Mélange. <Button Style="{StaticResource LinkButton}" Content="Text" />

OriginalL'auteur Clyde | 2012-11-29