【发布时间】:2017-12-14 06:29:27
【问题描述】:
我在设计可调整大小的 WPF 窗口时遇到问题。 结果应该是窗口元素自动调整大小,同时通过鼠标拖动改变窗口的宽度和高度。
基本面板是一个 Dockpanel,其第一个元素是位于顶部的 ToolBar。 然后是一个有两行的网格。 在每一行中都有一个带有内部元素的 DockPanel。 其中一些元素可以被 Visibilty.Collapsed 隐藏(在最终版本中将由属性生成)。 出于测试目的,我在 ToolBar 之后有两个 DockPanel,并且我已将 XAML 文件中第一个的可见性设置为 Collapsed。 当我启动应用程序时,窗口似乎是正确的。
但是当我单击窗口底部以通过拖动更改高度时,第二个 Dockpanel 变小并且折叠的 Dockpanel 所在的位置变得可见。
我做错了什么?
这是我的 XAML:
<Window x:Class="WPFResizable.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFResizable"
mc:Ignorable="d"
Title="MainWindow"
SizeToContent="Height"
Width="525">
<DockPanel VerticalAlignment="Stretch" Background="AliceBlue">
<Button DockPanel.Dock="Top" Height="40" Content="ToolBar"/>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" Grid.Column="0" VerticalAlignment="Stretch" Visibility="Collapsed">
<GroupBox Margin="5"
Header="Group 1">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<TextBox Text="Test 1"
MinWidth="400"
MinHeight="100"
Margin="5"/>
</ScrollViewer>
</GroupBox>
</DockPanel>
<DockPanel Grid.Row="1" Grid.Column="0" VerticalAlignment="Stretch">
<GroupBox Margin="5"
Header="Group 2">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<TextBox Text="Test 2"
MinWidth="400"
MinHeight="100"
Margin="5"/>
</ScrollViewer>
</GroupBox>
</DockPanel>
</Grid>
</DockPanel>
</Window>
【问题讨论】: