2010-11-09 12 views

Répondre

85

Le Style créé est que le ciblage Control et non des éléments qui découlent de Control. Lorsque vous ne définissez pas le x:Key, il est implicitement défini sur TargetType, donc dans votre cas x:Key="{x:Type Control}".

Il n'existe aucun moyen direct de spécifier un Style qui cible tous les éléments dérivés du TargetType du Style. Vous avez d'autres options.

Si vous avez les éléments suivants Style

<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}"> 
    <Setter Property="Margin" Value="50" /> 
</Style> 

Vous pouvez cibler tous Buttons par exemple

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/> 

ou utiliser le style directement sur un élément, par exemple Button

<Button Style="{StaticResource ControlBaseStyle}" ...> 
+3

merci! Exactement ce dont j'avais besoin! – 00jt

+0

Je me demandais pourquoi mon style avec un type cible de 'FrameworkElement' n'était pas appliqué à tous mes contrôles - ceci a répondu à cette question! – qJake

+0

Est-ce vraiment merdique, que je dois spécifier le style pour tous les types de contrôles placés sur la fenêtre, pas seulement pour quelque chose de commun pour tous? –