Dans mon application universelle plate-forme Windows, j'ai un TextBlock
dont DataContext
est une classe personnalisée:ChangePropertyAction n'affecte pas FontWeight
<TextBlock Text="{Binding OpeningHourDescription}" FontWeight="Light">
...
</TextBlock>
Ma classe personnalisée possède une propriété IsOpen
. Si c'est vrai, le TextBlock
devrait changer sa couleur et son poids. J'ai essayé de définir ce en remplaçant le code XAML suivant dans l'élément TextBlock
:
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding IsOpen}" Value="true">
<Core:ChangePropertyAction PropertyName="Foreground" >
<Core:ChangePropertyAction.Value>
<Color>Lime</Color>
</Core:ChangePropertyAction.Value>
</Core:ChangePropertyAction>
<Core:ChangePropertyAction PropertyName="FontWeight">
<Core:ChangePropertyAction.Value>
<FontWeight>ExtraBold</FontWeight>
</Core:ChangePropertyAction.Value>
</Core:ChangePropertyAction>
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
Le comportement lui-même fonctionne: Si IsOpen
est vrai, le texte est vert. Toutefois, le FontWeight
n'est pas défini, le texte n'a jamais l'air gras. Curieusement, l'échange des deux actions ChangePropertyAction
entraîne l'application des deux actions.
Modifier FontWeight
statiquement sur le TextBlock
fonctionne comme prévu. Le problème se produit également lorsque FontWeight="Light"
est pas défini sur le TextBlock
.
Qu'est-ce que je fais mal? Comment puis-je modifier le FontWeight
avec un ChangePropertyAction
?
Si je me souviens bien, vous pouvez le faire avec un storyboard et ObjectAnimationUsingKeyFrames –