0

DevComponents サードパーティ コントロールを使用して、複数のドッキング コンポーネントが 3 つの行に編成された画面を作成しています。最後の行には 3 つの列があります。このレイアウトの作成に成功しましたが、DockSite の高さを画面の境界まで拡張する方法がわかりません。

以下に XAML を投稿しました。

<UserControl x:Class="Docking_UC"
xmlns:my="clr-namespace:DevComponents.WpfDock;assembly=DevComponents.WpfDock"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="714" Width="1057">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" MinHeight="83"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid HorizontalAlignment="Stretch" Margin="0" Name="bodyGrid" Width="Auto" Grid.Row="0">
        <Grid.RowDefinitions>
            <RowDefinition Height="71" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <WrapPanel>
            <Label>Dock Test #</Label>
            <Label>1</Label>
        </WrapPanel>
        <Rectangle Height="12" Name="menuRectangle" Stroke="Black" VerticalAlignment="Bottom" Fill="SteelBlue" Opacity="0.25" Grid.Row="1" />
    </Grid>
    <my:DockSite Background="Transparent" Name="dashDockSiteAll" Grid.Row="1">
        <my:DockSite.SplitPanels>
            <my:SplitPanel Orientation="Vertical" my:DockSite.Dock="Top" my:DockSite.DockSize="714">
                <my:SplitPanel Orientation="Vertical">
                    <my:DockWindowGroup my:SplitPanel.RelativeSize="50,135">
                        <my:DockWindow Header="Top" Name="dockWindowTop">
                            <Label>2</Label>
                        </my:DockWindow>
                    </my:DockWindowGroup>
                    <my:DockWindowGroup my:SplitPanel.RelativeSize="50,220">
                        <my:DockWindow Header="MidWindowTab1" Name="dockWindowMid1">
                            <Label>3</Label>
                        </my:DockWindow>
                        <my:DockWindow Header="MidWindowTab2" Name="dockWindowMid2">
                            <Label>4</Label>
                        </my:DockWindow>
                    </my:DockWindowGroup>
                    <my:DockWindowGroup my:SplitPanel.RelativeSize="50,150">
                        <my:DockWindow Header="Bottom" Name="dockWindowBottom">
                            <my:SplitPanel Orientation="Horizontal" my:SplitPanel.RelativeSize="50,150">
                                <my:DockWindowGroup>
                                    <my:DockWindow Header="BottomLeft">
                                        <Label>5</Label>
                                    </my:DockWindow>
                                </my:DockWindowGroup>
                                <my:DockWindowGroup>
                                    <my:DockWindow Header="BottomMid">
                                        <Label>6</Label>
                                    </my:DockWindow>
                                </my:DockWindowGroup>
                                <my:DockWindowGroup>
                                    <my:DockWindow Header="BottomRight">
                                        <Label>7</Label>
                                    </my:DockWindow>
                                </my:DockWindowGroup>
                            </my:SplitPanel>
                        </my:DockWindow>
                    </my:DockWindowGroup>
                </my:SplitPanel>
            </my:SplitPanel>
        </my:DockSite.SplitPanels>
    </my:DockSite>
</Grid>

DockSite.Site プロパティを削除しようとしましたが、DockSite はデフォルトで Left Docked になります。また、1 つのウィンドウを下部サイトにドッキングすると、削除できないカーソルの高さの空き領域が残ります。

4

1 に答える 1

1

OK、トラブルシューティング/コントロールのいじりをもう 1 日行った後、私が達成しようとしていたことをついに発見しました。タグの外側の DockSite に my:SplitPanel を追加しました。明らかに、この SplitPanel は残りの空白に自動的にドッキングします。

修正されたコードは以下のとおりで、追加部分はわいせつにタブで上書きされています。

<UserControl x:Class="Docking_UC" xmlns:my="clr-namespace:DevComponents.WpfDock assembly=DevComponents.WpfDock" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="714" Width="1057">
<Grid>
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" MinHeight="83"></RowDefinition>
    <RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" Margin="0" Name="bodyGrid" Width="Auto" Grid.Row="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="71" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <WrapPanel>
        <Label>Dock Test #</Label>
        <Label>1</Label>
    </WrapPanel>
    <Rectangle Height="12" Name="menuRectangle" Stroke="Black" VerticalAlignment="Bottom" Fill="SteelBlue" Opacity="0.25" Grid.Row="1" />
</Grid>
<my:DockSite Background="Transparent" Name="dashDockSiteAll" Grid.Row="1">
    <my:DockSite.SplitPanels>
        <my:SplitPanel Orientation="Vertical" my:DockSite.Dock="Top" my:DockSite.DockSize="714">
            <my:SplitPanel Orientation="Vertical">
                <my:DockWindowGroup my:SplitPanel.RelativeSize="50,135">
                    <my:DockWindow Header="Top" Name="dockWindowTop">
                        <Label>2</Label>
                    </my:DockWindow>
                </my:DockWindowGroup>
                <my:DockWindowGroup my:SplitPanel.RelativeSize="50,220">
                    <my:DockWindow Header="MidWindowTab1" Name="dockWindowMid1">
                        <Label>3</Label>
                    </my:DockWindow>
                    <my:DockWindow Header="MidWindowTab2" Name="dockWindowMid2">
                        <Label>4</Label>
                    </my:DockWindow>
                </my:DockWindowGroup>
            </my:SplitPanel>
        </my:SplitPanel>
    </my:DockSite.SplitPanels>
                 <my:SplitPanel Orientation="Horizontal" my:DockSite.DockSize="100">
                       <my:SplitPanel Orientation="Horizontal" my:SplitPanel.RelativeSize="50,100">
                            <my:DockWindowGroup>
                                <my:DockWindow Header="BottomLeft">
                                    <Label>5</Label>
                                </my:DockWindow>
                            </my:DockWindowGroup>
                            <my:DockWindowGroup>
                                <my:DockWindow Header="BottomMid">
                                    <Label>6</Label>
                                </my:DockWindow>
                            </my:DockWindowGroup>
                            <my:DockWindowGroup>
                                <my:DockWindow Header="BottomRight">
                                    <Label>7</Label>
                                </my:DockWindow>
                            </my:DockWindowGroup>
                        </my:SplitPanel>
                     </my:SplitPanel>
</my:DockSite>
</Grid>

これが同じ問題を抱えている他の人に役立つことを願っています。

また、十分な評判のある方がこれを読んだら、DevComponents タグを追加していただけませんか?

于 2010-08-24T15:41:45.030 に答える