我正在尝试使用动画(对于Windows 8电话应用程序)
VisualStateManager
但是当我做的时候
VisualStateManager.GoToState
它返回false。我已正确定义了所有状态和网格。我在主网格布局下有一个名为“ContentPanel”的网格布局。在“ContentPanel”下,我有这个动画必须工作的矩形。我使用Code Behind动态创建了所有这些矩形。我已经在相同的代码中创建了所有状态和动画,并尝试运行上面提到的这一行。
我用google搜索并找到了使用GoToElementState()方法的不同解决方案。但我没有在我使用的类VisualStateManager类中看到此方法。我知道这是一种静态方法,但它并没有出现在建议中。
我也尝试使用ExtendedVisualStateManager类。即便如此。
最重要的是,我不确定为什么我的GoToState无效。如果我将主元素作为网格(作为LayoutRoot),则此动画正在运行。我使用了以下行
VisualStateManager.GetVisualStateGroups(this.ContentPanel);
// ContentPanel是布局的名称 我在哪里有其他矩形 动画必须绑定。然后我用这个命令..
VisualStateManager.GoToState(this, "stateName", true) // Returns false. Nothing happens when this is executed. Can any one please suggest me with the right implementation of this.
谢谢,
Sri Tej N。
答案 0 :(得分:0)
如果您的视觉状态位于Grid
之下,那么
VisualStateManager.GoToState(this, "stateName", true)
无法使用,因为this
很可能是Page
,但不直接包含视觉状态。
和
VisualStateManager.GoToState(this.YourGrid, "stateName", true)
无效,因为GoToState
的第一个参数需要是Control
的类型 - Grid
不会从Control
继承。
你需要使用这个。
ExtendedVisualStateManager.GoToElementState(this.YourGrid, "stateName", true)