WPF窗口的宽度在运行时较小。大小在xaml中使用Width
和Height
属性设置。
<Window x:Class="TestGUIGroesse.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"
mc:Ignorable="d"
Title="Training"
Width="910"
Height="720">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="850"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="1" Grid.Row="1"/>
</Grid>
当然,我可以设置SizeToContent
属性。那就成功了。但最后,目标是隐藏/显示一个网格列:该列包含一个dockpanel,并且可以由用户显示/隐藏。在这种情况下,网格的Width
被后面代码中的列的宽度重置。当我设置SizeToContent
属性时,我想要隐藏的列仍然显示。有道理,但这不是我想要的。
有什么主意吗?会很棒的。
1条答案
按热度按时间yebdmbv41#
GridSplitter可能是您正在寻找的吗?或者只是处理一些列定义宽度属性?
<GridSplitter x:Name="gridsplitter_name" Margin="0,0,0,width of column at design-time" d:LayoutOverrides="VerticalAlignment for columns, horizontal for rows" Width="integer" ResizeDirection="Columns or Rows" SnapsToDevicePixels="True" Grid.Column="the column on the righthand side of the grid line you want to move" HorizontalAlignment="Left"/>
这将允许用户单击并拖动网格列以显示/隐藏拆分器两侧列的内容,您还可以在XAML中设置网格的名称:
然后在codebhind中的button click方法:
//在gridSplitter的codebhind中的gridsplitter。return new Thickness(0,0,desired_width,0);
哦,如果你想在启动时设置窗口的设计尺寸,只需在XAML =)中的窗口宽度和高度值前面添加一个'd:'即可