Xaml UWP使用VisualStateManager将Grid.HorizontalAlignment更改为拉伸/向左

Xaml UWP使用VisualStateManager将Grid.HorizontalAlignment更改为拉伸/向左,xaml,uwp,uwp-xaml,visualstatemanager,adaptive-trigger,Xaml,Uwp,Uwp Xaml,Visualstatemanager,Adaptive Trigger,我无法让visual state manager正确更改应用程序主网格的水平对齐/垂直对齐 对于手机上使用的屏幕尺寸,我希望水平对齐/垂直对齐可以拉伸,高度/宽度设置为自动 对于桌面,它应为左/上,高度/宽度设置为特定大小。无论出于什么原因,当我试图弄乱对齐时,它的行为古怪,不符合我的要求 以下是我尝试过的一个例子: <VisualStateManager.VisualStateGroups> <VisualStateGroup>

我无法让visual state manager正确更改应用程序主网格的水平对齐/垂直对齐

对于手机上使用的屏幕尺寸,我希望水平对齐/垂直对齐可以拉伸,高度/宽度设置为自动

对于桌面,它应为左/上,高度/宽度设置为特定大小。无论出于什么原因,当我试图弄乱对齐时,它的行为古怪,不符合我的要求

以下是我尝试过的一个例子:

  <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任务栏(操作系统任务栏,而不是应用程序应用程序栏/命令栏)会切断部分应用程序。我不想将路线设置为拉伸,因为我试图限制视图的实时拉伸


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

应该这样写-

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



我有一些在不编写一行代码的情况下创建可视状态设置器的技巧。

应该这样编写-

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



我有一些在不编写一行代码的情况下创建可视状态设置器的技巧。

网格
是您的
网格
的名称吗?如果是,则将其更改为其他名称。如果否,则使用
Grid
名称而不是
Grid
。Grid不是我的网格的名称。我一直在使用“Container”,例如Container.HorizontalAlignment。我仅在本例中使用了网格作为占位符,因此很明显我使用的是网格。您的
网格的名称是
网格吗?如果是,则将其更改为其他名称。如果否,则使用
Grid
名称而不是
Grid
。Grid不是我的网格的名称。我一直在使用“Container”,例如Container.HorizontalAlignment。我仅在本例中使用了网格作为占位符,因此很明显我使用的是网格。我会尝试一下,谢谢。我现在记得筑巢有时真的很奇怪。您是否知道,当visualstatemanager放置在Pivot数据模板中时,为什么视觉状态不起作用?我已经用ListView完成了,没有问题,但它在pivot中表现得很怪。您需要将数据模板中的内容包装到
用户控件中。请看我的答案。好的,所以我按照你的建议尝试了,最初它抛出了一个异常。我试过你的第二种方法,它似乎有效。它自动编写的代码是:
我还将尝试UserControl,谢谢您的建议!同意,很可能是个bug。如果我找到一个明确的解决方案,我一定会更新这个线程。再次感谢你的帮助。我会试试的,谢谢。我现在记得筑巢有时真的很奇怪。您是否知道,当visualstatemanager放置在Pivot数据模板中时,为什么视觉状态不起作用?我已经用ListView完成了,没有问题,但它在pivot中表现得很怪。您需要将数据模板中的内容包装到
用户控件中。请看我的答案。好的,所以我按照你的建议尝试了,最初它抛出了一个异常。我试过你的第二种方法,它似乎有效。它自动编写的代码是:
我还将尝试UserControl,谢谢您的建议!同意,很可能是个bug。如果我找到一个明确的解决方案,我一定会更新这个线程。再次感谢你的帮助。