想当初在Delphi7写程序时为了使窗口自适应花了好久,最后实在不想调整了干脆把窗口设置成无法调整大小orz
在C# Wpf程序中可以很轻松地实现这一功能
具体方法如下:
首先点击Width和Height右边的图标将长宽调节为自动。
根据需要在窗口中画出一定数量的辅助线。
调整大小的方式设为星形调整大小,然后根据需要更改数值。这样辅助线会以输入的数值按比例排列。
正常加入一个组件后会在XAML框中显示如下代码:
1 |
<GroupBox Grid.Column="1" Header="GroupBox" HorizontalAlignment="Left" Height="198" Margin="17,24,0,0" Grid.RowSpan="2" VerticalAlignment="Top" Width="482"/> |
我们将HorizontalAlignment、 Height、VerticalAlignment、Width等不必要的数据删去,留下(根据需要写入)Grid.Row、Grid.RowSpan、Grid.Column、Grid.ColumnSpan、Margin等数据,可得到如下代码:
1 |
<GroupBox Grid.Column="1" Header="GroupBox" Margin="17,24,0,0" Grid.RowSpan="2"/> |
其中
Grid.Row表示上方以第几条辅助线为准(默认为0)
Grid.RowSpan表示下方以第几条(相对上方而言)辅助线为准(默认为1,超过合法数据时以下方边框为准)
Grid.Column表示左侧以第几条辅助线为准(默认为0)
Grid.ColumnSpan表示右侧以第几条(相对左侧而言)辅助线为准(默认为1,超过合法数据时以右侧边框为准)
Margin中的四个数字分别表示左,上,右,下分别距离基准位置多少像素。
至此窗口已基本实现自适应功能。
Ps:嵌套的控件也可以通过此方法来实现窗口自适应,不知道比Delphi7高到哪里去。