J'ai un style dans mon Application.Resources
:Silverlight: Pourquoi ce style fonctionne-t-il dans un endroit mais pas dans un autre?
<Style x:Name="TransparentBackground" TargetType="Border">
<Setter Property="Background" Value="AntiqueWhite" />
<Setter Property="Opacity" Value=".6" />
<Setter Property="Padding" Value="5" />
</Style>
Je l'ai appliqué à deux endroits. Dans le premier, il fonctionne:
<UserControl.Resources>
<DataTemplate x:Key="FileTemplate">
<Border Style="{StaticResource TransparentBackground}">
<TextBlock TextWrapping="Wrap">
<Run Text="{Binding Name, FallbackValue='File Name'}" FontWeight="Bold" />
<Run Text="." Foreground="#787878" FontWeight="Light" />
<Run Text="{Binding TypeExtension, FallbackValue='type'}" Foreground="#787878" FontWeight="Light" />
</TextBlock>
</Border>
</DataTemplate>
</UserControl.Resources>
Quand je DataTemplate
que est rendu, il ressemble beaucoup. Cependant, quand j'utilise le style au sein LayoutRoot
, il échoue:
<Border Style="{StaticResource TransparentBackground}">
<TextBlock x:Name="searchResultsFoundCountText" />
</Border>
La couleur de fond est gris au lieu de AntiqueWhite
, et l'opacité est 1
au lieu de .6
. Cependant, le rembourrage semble fonctionner. Pourquoi cela pourrait-il se produire?
J'utilise Silverlight 4.
Je ne pense pas que je fasse quoi que ce soit à propos de # 8 dans cette liste. Mais je suppose que je vais vérifier plus à fond. Qu'est-ce que la «coercition par le système de la propriété» ou le «style implicite»? –
J'ai joint le lien msdn avec des informations détaillées à ma réponse. 1er élément signifie "La coercition vous permet de contrôler la valeur finale qui est définie sur le DP via le CoerceValueCallback assigné dans PropertyMetaData du DP.C'est un moyen programmatique de contraindre la valeur du DP.". Le moyen le plus simple de vérifier une liaison est d'utiliser le code Background = "{Liative RelativeSource = {RelativeSource Self}, Path = Background, Convertisseur = {StaticResource SomeConverter}}" où le convertisseur ne fait rien, il est destiné à mettre un point d'arrêt à l'intérieur il. – vorrtex