Как изменить цвет текста TextBlock на Windows Phone 8.1 (WinRT)?
Мой TextBlock привязан к моей модели представления, и я хотел бы прошить текст при его изменении. Мне трудно реализовать это для Windows Phone 8.1 (WinRT). Я думаю, что я должен использовать EventTriggerBehavior и изменить textBlock на textBox, а затем выбрать событие "TextChanged". Есть простой способ сделать это?
Вот моя попытка сделать это с TextBox и использовать EventTriggerBehavior.
<TextBlock x:Name="TestTypeTextBox"
TextWrapping="Wrap"
Text="{Binding TestTypeText}"
FontSize="48" TextAlignment="Center"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0"
FontWeight="Bold"
FontFamily="Segoe UI Black"
Foreground="White"
Padding="0">
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="SelectionChanged">
<Media:ControlStoryboardAction Storyboard="{StaticResource FlashingText}"/>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
</TextBlock>
1 ответ
Вместо того, чтобы полагаться на события для вызова раскадровки, как насчет мониторинга изменения свойств TestTypeText
, учитывая, что вы уже делаете это в стиле mvvm?
Для этого вам понадобится DataTriggerBehavior
а не EventTriggerBehavior
,
<TextBlock x:Name="TestTypeTextBox"
TextWrapping="Wrap"
Text="{Binding TestTypeText,FallbackValue=sss}"
FontSize="48" TextAlignment="Center"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0"
FontWeight="Bold"
FontFamily="Segoe UI Black"
Foreground="White"
Padding="0" RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
<CompositeTransform/>
</TextBlock.RenderTransform>
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding TestTypeText}" ComparisonCondition="NotEqual" Value="{Binding TestTypeText}">
<Media:ControlStoryboardAction Storyboard="{StaticResource FlashingText}" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</TextBlock>
Приведенный выше код в значительной степени ваш, я только отредактировал поведение, поэтому он вызовет раскадровку, когда TestTypeText
изменено