【发布时间】:2017-12-04 12:26:16
【问题描述】:
我无法让视觉状态管理器正确更改应用程序主网格的 HorizontalAlignment/VerticleAlignment。
对于将在手机上使用的屏幕尺寸,我希望将 HorizontalAlignment/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 任务栏(操作系统任务栏,而不是应用程序栏/命令栏)会截断部分我的应用程序。我不想将对齐设置为拉伸,因为我试图限制视图的实时拉伸。
谢谢!如果需要更多详细信息,请告诉我。
【问题讨论】:
-
Grid是您的Grid的名字吗?如果是,则将其更改为其他名称。如果不是,则使用Grid名称而不是Grid。 -
Grid 不是我的网格的名称。我一直在使用“Container”,例如 Container.HorizontalAlignment。
-
我只在这个例子中使用了网格作为占位符,所以很明显这是我使用的网格。
标签: xaml uwp uwp-xaml visualstatemanager adaptive-trigger