悪いタイトルで申し訳ありませんが、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 Designerは、行1と2の高さが50であることを示していますが、明らかに等しくないため、2番目の行の高さを50にすることはできません。これは、2番目のボタンの行スパンを設定しているという事実と関係があると思われます。プロパティを2に設定しましたが、これがピクセル単位で設定した行の高さを台無しにする理由がわかりません。
行1と2の高さが50に固定されるように強制するにはどうすればよいですか?
編集:私は私の質問について詳しく説明する必要があると思います。グリッドの仕組みをひどく誤解しているかもしれませんので、ご容赦ください。
まず第一に、私が理解するのに苦労しているのは
行1と2の高さが50と表示されるのはなぜですか?それらは明らかに等しくないため、行2の高さを50にすることはできません。これはデザインビューのバグですか、それとも予想される動作ですか。
上に示した行の定義を作成したとき、下の画像は私が期待したものであるためです(下の画像は私のポイントを示すためにフォトショップされていることに注意してください)。
行1、2の高さが50に固定され、ボタンの残りの部分が3番目の行の高さに設定されている場合。