3

所以我制作了一个应用程序并设置了布局,使其在纵向模式下看起来不错。对于快照视图,我创建了一个 ListView,其中包含相同对象的不同实例。此 ListView 最初是折叠的,然后当它更改为 snapped 时,listview 变得可见并且纵向模式对象变得折叠。

这很好用,但是由于它们是两组不同的对象,因此会破坏用户体验。如果他们以纵向模式在框中输入文本,然后切换到快照视图,他们的所有文本都会消失(因为他们将其放在现在折叠的文本框中)。

问题是是否可以仅更改元素的位置/大小,以便它们是位于不同位置的相同对象,具体取决于我们是否处于捕捉模式?

希望这很清楚。谢谢。

4

1 回答 1

7

是的,事实上,该功能是类的内置功能LayoutAwarePage,这是您在项目中添加基本页面(相对于空白页面)时获得的页面类型。如果您从 Grid 或 Split App 模板开始,所提供的页面同样会扩展LayoutAwarePage.

这些页面有一些样板 XAML,它们利用VisualStateManager并为各种应用程序布局定义状态。您可以做的是为全横向模式设计布局,然后使用“设备”窗口记录对对齐、填充和纵向的布局(位置、颜色等)的更改。

例如,这是一个简单的横向模式 UI:

在此处输入图像描述

然后通过将Visual 状态切换为Snapped并打开Enable State Recording,我对布局进行了更改:

在此处输入图像描述

在运行时,应用程序在这两种状态下都如下所示。不需要任何代码——这一切都是通过LayoutAwarePage随着应用程序方向的变化在 VisualStates 之间切换来处理的。

在此处输入图像描述

在此处输入图像描述

于 2013-01-06T03:08:13.293 回答