13

とその他のアイテムStackPanelを含む があります。StackPanel最初のStackPanelものは垂直方向で、内側のものは水平方向です。内側のものには aTreeViewと aListViewがあります。ウィンドウで設定したウィンドウの幅に合わせて拡張し、ユーザーが変更できるようにしたいと思います。アウターもStackPanel窓の高さに合わせて欲しいです。どうすればいいですか?

編集: を使用するように変換し、各要素でプロパティを正しくDockPanel設定し、両方のドックパネルで無効にしましたが、レイアウトはまだ伸びません。DockPanel.DockLastChildFill

コード:

<Window x:Class="Clippy.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="400" Width="600" MinHeight="400" MinWidth="600" Loaded="Window_Loaded" SizeChanged="Window_SizeChanged">
    <DockPanel Name="wrapperDockPanel" LastChildFill="False">
        <Menu Height="22" Name="mainMenu" Width="Auto" DockPanel.Dock="Top" />
        <ToolBar Height="26" Name="mainToolBar" Width="Auto" DockPanel.Dock="Top" />
        <DockPanel Height="Auto" Name="contentDockPanel" DockPanel.Dock="Top" LastChildFill="False">
            <TreeView Name="categoryTreeView" />
            <ListView Name="clipListView" />
        </DockPanel>
        <StatusBar Height="23" Name="mainStatusBar" DockPanel.Dock="Top" />
    </DockPanel>
</Window>
4

3 に答える 3

11

代わりに DockPanel を使用してください。StackPanel は明示的に表示スペースを気にしませんが、DockPanel は使用可能なスペースに基づいてすべてのサイズ計算を行います。

アップデート:

さらに、私の経験では、ウィンドウの本体をビューに配置し、ウィンドウにビューのみを配置すると、自動サイズのエクスペリエンスが向上します。

何らかの理由で、すべての子を Window に直接配置すると、サイズが自動調整されないようです。

更新 2:

未使用のスペースを拡大 (埋める) する要素から、明示的な DockPanel.Dock 属性を削除します。

于 2009-06-11T21:21:00.227 に答える
9

これでうまくいくはずです - TreeView と ListView がメインビューを 50/50 共有するように設定しました。そうしたくない場合は、「Auto」や「*」などに設定してください。「LastChildFill」を活用してください!

<Window x:Class="Clippy.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="400" Width="600" MinHeight="400" MinWidth="600" Loaded="Window_Loaded" SizeChanged="Window_SizeChanged">

    <DockPanel LastChildFill="True">
        <Menu Width="Auto" DockPanel.Dock="Top" />
        <ToolBar Width="Auto" DockPanel.Dock="Top" />
        <StatusBar DockPanel.Dock="Bottom" />

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*" />
                <RowDefinition Height="0.5*" />
            </Grid.RowDefinitions>

            <TreeView Name="categoryTreeView" Grid.Row="0" />
            <ListView Name="clipListView" Grid.Row="1" />
        </Grid>
    </DockPanel>

</Window>
于 2009-06-12T21:40:07.397 に答える
0

幅と高さのプロパティを「自動」に設定します

于 2009-06-11T21:16:09.083 に答える