gpt4 book ai didi

c# - 在 UWP 的大小触发器中更改控件的父级

转载 作者:太空宇宙 更新时间:2023-11-03 17:00:58 25 4
gpt4 key购买 nike

我正在创建一个 Windows 10 通用应用程序,我的主页中有两个面板。

在平板电脑/桌面模式下,两者同时可见(只是两个简单的 Grid,一个填充左侧,另一个填充右侧)

但是,在手机模式下,有一个枢轴,用户可以在面板之间滑动。

(我可以使用 SplitView 和汉堡包菜单,它们在平板电脑/桌面和手机模式下都能轻松工作,但在我的情况下,枢轴更有意义)

所以,我目前所做的是,每个面板都有两个实例。 PhonePanel1PhonePanel2 是我的 pivot 控件的两个页面内的两个网格, TabletPanel1TabletPanel2 是两个网格,其中可以并排显示。我使用 AdaptiveTrigger 来检测页面宽度并在这两种 View 方法之间切换。

但是,每个面板都有两个实例并不是一个好方法,因为它们显示的内容基本相同。

有没有更好的方法来做到这一点?也许在触发器更改 View 模式时更改 Grid 的父项?或者更好的东西?

最佳答案

我能想到的更改父级的唯一方法是在后面编写一些代码,将它们呈现在新位置。一个合适的解决方案可能是将控件的加载推迟到需要它们时。

x:DeferLoadStrategy=”Lazy“

如果将此属性添加到重复的控件中,它们将仅在需要时加载。因此,在手机上,不应加载 PC/平板电脑 View ,除非用户在外部显示器上运行 Continuum。

在 PC 上,您可能仍然会同时加载这两者(如果用户调整窗口大小)- 在 PC 上通常有更多资源,因此在大多数情况下较少出现问题。

我研究了将控件移动到不同父级的代码隐藏方法,老实说,我认为这样做还为时过早,因为它甚至可能不会提高性能。

我选择了延迟加载策略属性,发现性能很好,而且只需要很少的代码。我的重复控件共享相同的 ViewModel,因此我几乎只是添加了该属性以确保仅在必要时使用资源。

关于c# - 在 UWP 的大小触发器中更改控件的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com