最近,我为高分辨率显示器(1900x1200)编写了一个极其图形化的界面。当然我的要求发生了变化,需要在1366x768重做。我没有将应用程序重新分配给固定分辨率(经验教训),而是将所有内容都移动到自己的ViewBox中,然后重新选择我的网格控件来处理这个问题。该应用程序看起来很棒,可以扩展到(几乎)任何大小,没有任何工件。
我的问题是,是否有更简单的方法在WPF中完成全动态控制缩放,并将每个控件放在自己的视图框中? ViewBox是我能找到的唯一一个控件,但它只能包含一个子元素,这使得这个过程非常繁琐。是否有更好的控件可以包含可扩展的子控件?
答案 0 :(得分:2)
为什么不将一个Grid或StackPanel放在viewBox中,然后用控件填充它们?
像这样的东西
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WfpApplication1="clr-namespace:WfpApplication1"
Title="MainWindow" Height="350" Width="525">
<Viewbox>
<StackPanel>
<CheckBox Content="Hello World!"/>
<TextBlock Text="Hello world"/>
<Button Content="Hello world!"/>
</StackPanel>
</Viewbox>