我在Windows Phone 8.1,通用应用程序中遇到VisualState问题:
我制作了一个简单的系统来改变视觉状态,如果屏幕有尺寸或其他...一切都在运行时很好,但在设计过程中,我的意思是设计师,不起作用。
所以我尝试了VisualStateManager.GoToState(..),但是在设计师中没有用,所以也许解决方案是设置初始状态,但我也尝试过触发器(beaviour sdk)但是。没什么,所以我的问题是在设计师中有一个视觉状态,以便用户界面轻松工作,换句话说设置一个在设计师也有效的视觉状态......
这是一个非常简单的例子
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="small" >
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="tmedium">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="tlarge">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="medium" />
<VisualState x:Name="large" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<TextBlock Name="tsmall" HorizontalAlignment="Left" Margin="36,87,0,0" TextWrapping="Wrap" Text="small" VerticalAlignment="Top"/>
<TextBlock Name="tmedium" HorizontalAlignment="Left" Margin="124,140,0,0" TextWrapping="Wrap" Text="medium" VerticalAlignment="Top"/>
<TextBlock Name="tlarge" HorizontalAlignment="Left" Margin="220,199,0,0" TextWrapping="Wrap" Text="large" VerticalAlignment="Top"/>
这是在代码背后:
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
VisualStateManager.GoToState(this, "small", true);
}
当启动一个小状态设置,但在设计师没有,那么如何实现相同的结果呢?
谢谢