我们正在编写一个基于 Prism 的 Silverlight 应用程序,并且我们在不同的模块中有一大堆页面。
页面之间的转换是通过导航事件处理的,每个模块都实现了以下方法来在导航到时显示页面并在导航到时隐藏页面:
public void Show()
{
VisualStateManager.GoToState(this, "ShowState", true);
}
public void Hide()
{
VisualStateManager.GoToState(this, "HideState", true);
}
目前在每个模块的 XAML 文件中定义了“ShowState”和“HideState”,因此重复了太多次。
<Grid x:Name="LayoutRoot">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStates">
<VisualState x:Name="ShowState">
...
</VisualState>
<VisualState x:Name="HideState">
...
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
其中...
代表Storyboard
每个转换的。
我刚刚在Storyboard
定义中发现了一个错误,目前我将不得不在所有文件中复制修复。如果Storyboard
每个文件中只有一个可以引用的定义会更好。
我整个上午都在寻找正确的语法,但一直没有运气。
如何VisualStateManager
在我们所有的 XAML 文件之间共享它?