Grid
1:3 の比率でサイズ設定された 2 つの行があります。最初の行はMinHeight
ゼロ以外の値に設定されています。2 番目の行に a を入れるとListBox
、そのサイズはウィンドウの境界によって制限されません。
MinHeight
が適用された場合 (つまり、ウィンドウが小さい場合) に問題が発生します。問題のある部分をに置き換えるListBox
とButton
、問題はなくなります (ボタンは常にウィンドウの境界内に留まります)。
MainWindow.xaml
<Window x:Class="WpfGridLayoutMinMax.MainWindow" x:Name="self"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300" MinHeight="200" MinWidth="200">
<Control.Resources>
<Style TargetType="ListBox">
<Setter Property="Margin" Value="4"/>
<Setter Property="ItemsSource" Value="{Binding Items, ElementName=self}"/>
</Style>
</Control.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" MinHeight="100"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<ListBox Grid.Row="0"/>
<ListBox Grid.Row="1"/>
</Grid>
</Window>
MainWindow.xaml.cs
using System.Collections.Generic;
using System.Linq;
namespace WpfGridLayoutMinMax
{
public partial class MainWindow
{
public List<int> Items { get; set; }
public MainWindow ()
{
Items = Enumerable.Range(0, 20).ToList();
InitializeComponent();
}
}
}
質問: この問題の原因は何ですか? ListBox
ウィンドウコンテンツエリア内にとどまるには?