Tag: visualstatemanager

VisualStateManager无法在UserControl上启动动画

我正在尝试使用Windows Phone 7 Silverlight项目中的VisualStateManager在UserControl上启动动画,但它不起作用。 GoToState只是继续返回false。 该代码由VisualState行为组成,当更改datacontext上的State属性时,该行为将运行GoToState,这在单击UI中的按钮时会发生: 我究竟做错了什么? XAML: C#: public class Test : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; void OnPropertyChanged(string name) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(name)); } string _state; public string State { get { return _state; } set { _state = value; OnPropertyChanged(“State”); } } } public static class VisualStates […]

从XAML启动VisualState转换

在用户控件(或其他)中,我们都知道可以在代码中使用VisualStateManger来启动转换或动画,如下所示: if (target.IsLocked) { VisualStateManager.GoToState(this, “Locked”, true); } else if (target.IsBroken) { VisualStateManager.GoToState(this, “Broken”, true); } else { VisualStateManager.GoToState(this, “Normal”, true); } 但是,似乎很少或没有关于从XAML触发这些类型的动画的信息。 是否可以定义DataTemplate或Trigger,它们可以提供与上面列出的代码等效的行为?

如何在Silverlight 4中等待状态转换完成?

我需要更改控件的状态然后执行一些操作。 具体来说,我想在隐藏控件之前运行动画。 我想做那样的事情: VisualStateManager.GoToState(control, “Hidden”, true); // wait until the transition animation is finished ParentControl.Children.Remove(control); 问题是过渡动画是异步运行的,因此在动画启动后立即从可视树中删除控件。 那么我该如何等待动画完成呢?