下午好!
我不想打扰你们,但是当它具有“自动”值时,我对 WPF 中的窗口“高度”属性几乎没有疑问。因为我想了解这里的事情是如何运作的。这是 XAML 代码:
<Window x:Class="WpfTest.MainWindow"
x:Name="window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Collapsed and Hidden buttons comparison" Width="500">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Height="50" Grid.Column="0" Margin="5,0">
<Button Visibility="Collapsed">This is collapsed button</Button>
<Button >Below collapsed button</Button>
</StackPanel>
<StackPanel Height="50" Grid.Column="1" Margin="5,0">
<Button Visibility="Hidden">This is hidden button</Button>
<Button >Below hidden button</Button>
</StackPanel>
</Grid>
</Window>
当我使用显式高度时:
Height="300"
或者
SizeToContent="WidthAndHeight"
在宽度之前一切都很完美,但是当我不输入或删除默认高度时,窗口就会出现这种奇怪的外观。
在属性中“高度”的值为“自动”。当我使用程序代码获取实际高度时,它是 526。
MessageBox.Show(Convert.ToString(window.Height),"Height of the window");
有人可以解释一下为什么窗口会这样(我的意思是它从哪里获取高度)。提前致谢。