设计师的Visualstatemanager

时间:2015-01-09 07:08:14

标签: c# xaml windows-phone-8 visual-studio-2013 win-universal-app

我在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);
    }

当启动一个小状态设置,但在设计师没有,那么如何实现相同的结果呢?

谢谢

0 个答案:

没有答案