如何更改为Windows Phone 8.1(WinRT)更改的文本上的TextBlock前景色?

时间:2015-03-22 02:44:03

标签: windows xaml windows-runtime windows-phone-8.1 expression-blend

我的TextBlock绑定到我的viewmodel,并且我想在文本发生变化时刷新文本。我发现很难为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 个答案:

答案 0 :(得分:2)

如果您已经以mvvm方式执行此操作,那么如何监视TestTypeText的属性更改,而不是依赖于事件来调用故事板?

这样做,您需要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发生变化时调用故事板。