抱歉,不好的标题,但WPF显然是对我说谎,所以我不知道该怎么说。我复制一个非常简单的示例来演示我的问题:为什么网格对我撒谎?
XAML:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Height="50" Grid.Row="0" ></Button>
<Button Height="100" Grid.Row="1" Grid.RowSpan="2"> </Button>
</Grid>
</Window>
这是你会得到什么:
XAML设计显示,第1行的高度和2是50,但他们显然不相等,所以第二行不能有50的高度。我怀疑这是与事实,我设置第二个按钮的行跨度属性为2,但我不明白为什么这弄乱了行嘿ghts,我按像素设置。
我该如何强制让第1行和第2行的高度固定为50?
编辑:我想我需要详细说明我的问题。我可能严重误解了网格是如何工作的,所以请耐心等待,如果我能告诉我。
首先,什么我有一个很难理解
为什么是高度的行1和2显示为50?它们显然不相同,所以第2行不能有50的高度。这是设计视图中的错误还是预期的行为?
因为当我做出如上图所示我行定义,下面的图片是我所期待的(请注意,下面的图片是Photoshop处理来证明我的观点):
其中行1,2高度是固定为50,按钮的其余部分是第三行的高度设置为。
第二个按钮横跨高度为50和1 *的两行,这正如图所示。究竟是什么问题? – McGarnagle