在调试我的WPF程序时,我注意到当窗口是设置大小时,控制看起来很好.但是当窗口最大化时,内容位于相同的位置,就好像窗口没有调整大小一样.我想要它,以便内容和窗口按比例调整大小.我怎样才能做到这一点?对不起,如果这是一个noobish问题,但我在WPF时代有点新.
XAML代码还没有完全准备好,但这里有一些元素:
<DockPanel>
<StackPanel DockPanel.Dock="Left">
...
</StackPanel>
<TabControl DockPanel.Dock="Right">
...
</TabControl>
<ListView>
...
</ListView>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
通常,这是因为维度值是静态设置的,而不是动态设置的.这是静态方法:
<RowDefinition x:Name="NavigatorRow" Height="120"/>
<RowDefinition x:Name="TaskPanelRow" Height="80"/>
Run Code Online (Sandbox Code Playgroud)
两行都有固定的高度,它们不会随窗口大小调整.
这是动态方法:
<RowDefinition x:Name="NavigatorRow" Height="1*"/>
<RowDefinition x:Name="TaskPanelRow" Height="80"/>
Run Code Online (Sandbox Code Playgroud)
底行仍然具有固定高度80,但顶行将扩展以填充可用的任何空间.换句话说,行将随窗口调整大小.列的工作方式相同.
如果我有三行,我可以这样做:
<RowDefinition x:Name="NavigatorRow" Height="1*"/>
<RowDefinition x:Name="CalendarRow" Height="2*"/>
<RowDefinition x:Name="TaskPanelRow" Height="80"/>
Run Code Online (Sandbox Code Playgroud)
导航器行和日历行将共享可用空间,日历行占用导航器行高度的两倍.你明白了.
所以,它不是你使用的容器,而是你如何调整容器的大小.如上所述,一个例外是StackPanel,它不能扩展.改为使用网格,因为它可以缩放.
| 归档时间: |
|
| 查看次数: |
28263 次 |
| 最近记录: |