c# - Windows 8 XAML 对象和快照 View

标签 c# xaml windows-8 microsoft-metro winrt-xaml

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

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

问题是是否可以只改变元素的位置/大小,使它们成为相同的对象,只是位于不同的位置,这取决于我们是否处于对齐模式?

希望这是清楚的。谢谢。

最佳答案

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

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

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

enter image description here

然后通过将视觉状态切换到捕捉并打开启用状态记录,我对布局进行了更改:

enter image description here

在运行时,应用程序在两种状态下分别如下所示。无需代码 - 这一切都由 LayoutAwarePage 在 VisualStates 之间切换来处理,因为应用程序的方向发生变化。

enter image description here

enter image description here

关于c# - Windows 8 XAML 对象和快照 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178093/

相关文章:

xaml - 绑定(bind)到 Xamarin 表单中的附加属性

c# - 在属性访问器中调用等待方法 [Windows 应用商店应用/Metro 应用]

windows-8 - windows 8 xaml 内联超链接

c++ - 在 Windows 8 中从 mmc.exe 获取数字签名

找不到 C# SqlConnection

c# - 我如何创建一个流畅的 Nhibernate 映射,该映射具有多个表的连接但仅从每个表中选择选择性列?

wpf - 将 TabControl ItemsSource 绑定(bind)到 ViewModel 集合

javascript - WinJS gestureRecognizer - 如何捕获多个手势

c# - 我如何编码列表<int>?

c# - .NET Core Web API : Possible to assign controller route in appsettings. json 配置文件?