7
votes

Comment appliquer correctement un style au présentateur de contenu

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

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

Le problème est que le style de souligne TextDecoration n'est appliqué que sur des blocs de texte autogéné. P>

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


1 commentaires

Pourquoi mettez-vous un textblock à l'intérieur d'un bouton? La classe de boutons possède son propre champ intégré «Contenu» qui formatera et échoué bien, vous pouvez également modifier la façon dont il se blendra si facilement.