gpt4 book ai didi

c# - 如何在 WinRT XAML 中的值发生变化时为 TextBlock 设置动画?

转载 作者:行者123 更新时间:2023-11-30 14:30:19 25 4
gpt4 key购买 nike

我有以下 Storyboard

<Storyboard x:Name="DeleteStoryboard">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="StatusTextBlock">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:4" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:5" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>

和下面的TextBlock

<TextBlock x:Name="StatusTextBlock" Text="{Binding Status}">

两者都在 SettingsFlyout 中,而不是 Page

我希望 StoryboardTextBlock 值更改时启动。

我正在使用 MVVM,所以除非绝对必要,否则请不要使用代码隐藏内容。

我尝试搜索提示并尝试了 BehaviorsTriggersVisualState 的不同组合,但一无所获。

最佳答案

同样,不确定我们是否 100% 同意。但是,您仍然可以这样做:

public class MyViewModel : INotifyPropertyChanged
{
public string Text { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}

public void Loaded()
{
var myBox = new TextBox();
var myAni = new Storyboard();
var MyVvm = new MyViewModel();

// sensible approach
myBox.TextChanged += (s, e) => myAni.Begin();

// forced approach
MyVvm.PropertyChanged += (s, e) =>
{
if (e.PropertyName.Equals("Text"))
myAni.Begin();
};
}

最终,您是自己应用的开发者。不是我。

如果你愿意使用行为,你也可以这样做:

<Page.Resources>
<Storyboard x:Name="FadeAway">
<DoubleAnimation Duration="0:0:1" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="textBox" d:IsOptimized="True"/>
</Storyboard>
</Page.Resources>

<TextBox x:Name="textBox">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="TextChanged">
<Media:ControlStoryboardAction Storyboard="{StaticResource FadeAway}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</TextBox>

我想您可以使用一种行为来实现“纯”MVVM 方法。它让你 100% 使用 XAML,这让一些开发人员感到温暖和模糊;我明白了。而且,我喜欢行为。看。我不想在这里和你争论,只是顶层的做法肯定不会“错”。

Learn more about behaviors: http://blog.jerrynixon.com/2013/10/everything-i-know-about-behaviors-in.html

祝你好运。

关于c# - 如何在 WinRT XAML 中的值发生变化时为 TextBlock 设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com