可能であれば、リストボックスが 200 の場合に必要なウィンドウの高さを計算します。次に、ウィンドウの高さを次のようにその数値に設定します。
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" Height="225"
Title="MainWindow" >
<DockPanel LastChildFill="True" VerticalAlignment="Stretch">
<TextBlock DockPanel.Dock="Top">Other text</TextBlock>
<ListView BorderBrush="Orange" VerticalAlignment="Stretch" />
</DockPanel>
</Window>
これが不可能な場合 (たとえば、他の要素のサイズが事前にわからない場合)、次の操作を行います。
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" SizeToContent="Height"
Title="MainWindow" Loaded="Window_Loaded" >
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Top">Other Text</TextBlock>
<ListView BorderBrush="Orange" Name="listbox" Height="200" />
</DockPanel>
</Window>
およびコードビハインドで:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Height = ActualHeight;
SizeToContent = System.Windows.SizeToContent.Manual;
listbox.Height = Double.NaN;
}