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
Vous devez vous connecter pour publier un commentaire.
Je pense que quand vous mettez un élément du Cadre à l'intérieur d'un ContentControl, le Modèle n'est pas appliquée. Si vous aussi, vous déclarez votre TextBlock style comme un Bouton de la ressource, il fonctionne dans les deux cas.
Vous pouvez définir l'compléter le style de votre contrôle de ressources (ou de choisir le style dans le Bouton de ressources comme le principal) et de définir le style dans le ContententPresenter comme un espace réservé basé sur le principal.
OriginalL'auteur Arthur Nunes
J'ai rencontré des problèmes similaires hier. Vous pouvez déplacer style setters pour bloc de texte, à partir de Modèle de nœud, de sorte que vos styles de ne pas effacer après vous modifiez le contenu du contrôle.
OriginalL'auteur GrigTheFirst
Le problème est que vous définissez
x:Key="LinkButton"
. Styles implicites ne fonctionnera pas si vous définissez la clé. Retirez la clé et il sera appliqué à tous les boutonsOriginalL'auteur Winger Sendon