0

の初期サイズを設定したいlistview。プロパティ LastChildFill = true を持つ最後の子としてListViewドッキングされます。DockPanelWindow には SizeToContent が SizeToContent.Height に設定されています。ユーザーがサイズを変更すると Window のサイズを変更し、 ListView のサイズをそれぞれ変更します。しかし、ウィンドウが開いたときに ListView の高さを 200 にしたいと思います。

それを達成する方法は?

4

2 に答える 2

1

私の解決策

<Window x:Class="WPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Width="640" SizeToContent="Height"
        Title="MainWindow" Loaded="Window_Loaded" >
    <DockPanel LastChildFill="True">
        <TextBlock DockPanel.Dock="Top">Other Text</TextBlock>
        <ListView Name="listbox" />
    </DockPanel>
</Window>

およびコードビハインドで:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    SizeToContent = System.Windows.SizeToContent.Manual;
    Height = 480;
}
于 2015-07-23T11:57:18.883 に答える
0

可能であれば、リストボックスが 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;
}
于 2015-07-23T11:40:13.697 に答える