加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Windows 8 XAML对象和Snapped View

发布时间:2020-12-16 01:52:19 所属栏目:百科 来源:网络整理
导读:所以我制作了一个应用程序并设置了布局,使其在纵向模式下显示正常.对于捕捉的视图,我创建了一个ListView,它包含相同对象的不同实例.此ListView最初是折叠的,然后当它更改为捕捉时,列表视图变为可见,并且纵向模式对象将折叠. 这很好用,但由于它们是两组不同的
所以我制作了一个应用程序并设置了布局,使其在纵向模式下显示正常.对于捕捉的视图,我创建了一个ListView,它包含相同对象的不同实例.此ListView最初是折叠的,然后当它更改为捕捉时,列表视图变为可见,并且纵向模式对象将折叠.

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

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

希望这很清楚.谢谢.

解决方法

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

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

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

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

在运行时,应用程序在两种状态中的每一种状态下都如下所示.不需要代码 – 当应用程序的方向发生变化时,VisualAates之间的LayoutAwarePage切换都会处理它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读