gpt4 book ai didi

c# - 使用 Viewbox 扩展 C# XAML 的优点/缺点

转载 作者:太空狗 更新时间:2023-10-30 01:36:23 25 4
gpt4 key购买 nike

使用 C#/VS2013.1 编写的 Windows 应用商店应用

我已经完成了一个复杂的 Grid/StackPanel 排列,按钮、图像、复选框都在一个 Viewbox 标签内,如下所示:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Viewbox Grid.Row="1" Grid.Column="1" Stretch="Uniform">
<Grid>
... (lots of nested elements)
</Grid>
</Viewbox>
</Grid>

目标是动态缩放页面,沿每条边留下约 10% 的边框。我试过在不同的分辨率和设备上运行它,一切看起来都很完美。

我的问题是,使用 Viewbox 以这种方式包装复杂/嵌套元素,与在每个元素中精心规划和编码宽度/高度/字体,以便它们适本地扩展到应用程序的任何分辨率相比,是否有缺点运行?我读过一些帖子,建议只有在其他方法失败时才应使用 Viewbox(或者设计人员在首次编写 XAML 时没有考虑缩放)。这是有原因的吗?

最佳答案

如果“大量嵌套元素”的设计没有考虑固定宽度缩放,则 Viewbox 将是不必要的,因为 Grid 将自动适应 80% 宽度/高度,如果你设置它拉伸(stretch)到它的容器。添加不必要的布局元素只会增加应用程序的渲染时间要求,这是这里的主要缺点。

但是,如果内容中充满了“固定大小”的元素(即:您有硬编码的宽度或高度等),那么这将为您提供快速且轻松的缩放。鉴于这完全按照您的意愿显示,除非您发现当前解决方案存在某些特定问题,否则我将保留它。

关于c# - 使用 Viewbox 扩展 C# XAML 的优点/缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337967/

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