使用Viewbox缩放C#XAML的优点/缺点

使用Viewbox缩放C#XAML的优点/缺点,c#,xaml,windows-store-apps,screen-resolution,viewbox,C#,Xaml,Windows Store Apps,Screen Resolution,Viewbox,使用C#/VS2013.1编写的Windows应用商店应用程序 我已经完成了一个复杂的网格/堆栈面板排列,按钮、图像、复选框都在一个Viewbox标记内,如下所示: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="8*"/> <RowDefini

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

我已经完成了一个复杂的网格/堆栈面板排列,按钮、图像、复选框都在一个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以这种方式包装复杂/嵌套的元素,与在每个元素中精心规划和编码宽度/高度/字体,以便它们能够正确地扩展到应用程序正在运行的任何分辨率相比,是否有缺点?我读了一些文章,指出只有当其他方法失败时(或设计器在XAML首次写入时没有考虑缩放),VIEWBOX才应该使用。有什么原因吗?

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


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

谢谢您的回复!我有固定/灵活的元素组合,加上字体,如果相应的网格变大,则需要调整字体大小,因此在不使用Viewbox的情况下编写这些元素的代码将非常繁琐。@JJLL在这种情况下,我只会坚持使用Viewbox-如果它可以工作,并提供足够的性能,为什么要尝试改变局面?有什么特别的问题困扰着你吗?我想知道我是否可以在将来的XAML页面中坚持使用这种使用模式。在对这个特定的XAML页面进行编码时,我没有考虑过缩放,所以我使用了VIEWBOX,我想找出在XAML中使用VIEWBOX VS编码本地灵活大小的优点/缺点。