UWP使用VisualStateManager将Grid.Horizo​​ntalAlignment更改为拉伸/左侧

时间:2017-06-30 13:55:20

标签: xaml uwp uwp-xaml visualstatemanager adaptive-trigger

我无法让视觉状态管理器正确更改应用程序主网格的Horizo​​ntalAlignment / VerticleAlignment。

对于将在手机上使用的屏幕尺寸,我希望将Horizo​​ntalAlignment / VerticleAlignment拉伸,并将Height / Width设置为Auto。

对于桌面,它应该是左/上,高度/宽度设置为特定大小。无论出于什么原因,当我试图弄乱对齐时,它表现得很古怪而且没有做我想做的事情

这是我尝试过的一个例子:

  <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="PhoneView">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="Grid.HorizontalAlignment" Value="Stretch"/>
                    <Setter Target="Grid.VerticleAlignment" Value="Stretch"/>
                    <Setter Target="Grid.Height" Value="Auto"/>
                    <Setter Target="Grid.Width" Value="Auto"/>
                </VisualState.Setters>
            </VisualState>

            <VisualState x:Name="DesktopSmall">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1920"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="Grid.HorizontalAlignment" Value="Left"/>
                    <Setter Target="Grid.VerticleAlignment" Value="Top"/>
                    <Setter Target="Grid.Height" Value="1280"/>
                    <Setter Target="Grid.Width" Value="1920"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

另一个问题是,当我尝试将最大分辨率设置为1920x1280时,如果我手动设置网格的高度/宽度,则Windows任务栏(操作系统任务栏,而不是应用程序应用栏/命令栏)会切断部分我的应用程序。我不想将对齐设置为拉伸,因为我试图限制视图的实时拉伸。

谢谢!如果需要更多细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

应该这样写 -

<Setter Target="Container.(Grid.HorizontalAlignment)" Value="Left" />
<Setter Target="Container.(Grid.VerticalAlignment)" Value="Top" />

我有一些提示here用于创建可视状态设置器,而无需编写任何代码。