<Window x:Class="DemoWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0" Margin="2">Button</Button>
</Grid>
</Window>
开始后我看到窗口:
如果我稍微改变窗口的大小,我会看到下一个窗口:
为什么按钮的大小会改变?
答案 0 :(得分:2)
这可能是(但有争议)WPF中的一个错误。您将网格声明为具有三个相等大小的行。该按钮只占用一行。
当调整大小时,WPF会搜索你的按钮,因为它只应显示在第一行。启动时应该看起来像这样:
您可以通过在窗口中指定MinHeight
来解决此问题:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight" MinHeight="100">