首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工具栏卡在Avalon Dock后面

工具栏卡在Avalon Dock后面
EN

Stack Overflow用户
提问于 2012-10-18 06:42:19
回答 2查看 1.7K关注 0票数 2

我是WPF的新手,开始使用Avalon Dock。我对工具栏有问题。当我在工具栏托盘中拖动工具栏时,托盘向下展开并卡在Avalon Dock容器后面。我如何让它自动缩小尺寸,这样工具栏就不会卡在后面了?这是我的XAML..谢谢:)

代码语言:javascript
复制
<Window x:Class="PSWPF0._001.MainWindow"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:avalonDock="http://avalondock.codeplex.com"
    Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="381" d:DesignWidth="754" SizeToContent="WidthAndHeight">
<Grid DataContext="{Binding}" AllowDrop="True" ClipToBounds="True" IsItemsHost="False">
    <DockPanel HorizontalAlignment="Stretch" Margin="2,0,0,0" Name="dockPanel1" VerticalAlignment="Stretch" />


    <Menu Height="22" HorizontalAlignment="Stretch" Name="menu1" VerticalAlignment="Top" Margin="2,0,-2,0" DockPanel.Dock="Top">
        <MenuItem Header="File">
            <MenuItem Header="New" Click="MenuItem_Click_4">
                <MenuItem Header="Project" />
                <MenuItem Header="C Source File" />
                <MenuItem Header="Text File" />
            </MenuItem>
            <MenuItem Header="Open" Click="MenuItem_Click_5"/>
            <MenuItem Header="Save" />
        </MenuItem>
        <MenuItem Header="Edit">
            <MenuItem Header="Undo" />
            <MenuItem Header="Redo" />
            <Separator />
            <MenuItem Header="Copy" />
            <MenuItem Header="Cut" />
            <MenuItem Header="Paste" />
            <MenuItem Header="Delete" />
            <Separator />
            <MenuItem Header="Find" />
        </MenuItem>
        <MenuItem Header="View" Click="MenuItem_Click_1">
            <MenuItem Header="Project Dashboard"/>

            <MenuItem Header="Project Explorer" />
        </MenuItem>
        <MenuItem Header="Help" Click="MenuItem_Click">
            <MenuItem Header="About" Click="MenuItem_Click_3"/>
            <MenuItem Command="ApplicationCommands.Help" Header="Help Content" />
        </MenuItem>
    </Menu>



    <ToolBarTray DockPanel.Dock="Top"  Background="LightGray" VerticalAlignment="Top" Margin="2,23,-2,0">
        <ToolBar Band="1" BandIndex="1">
            <Button>New</Button>
            <Button>Open</Button>
            <Button>Exit</Button>
        </ToolBar>
        <ToolBar BandIndex="2" Band="2">
            <Button>Undo</Button>
            <Button>Redo</Button>
        </ToolBar>
        <ToolBar Band="2" BandIndex="2">
            <Button>Paint</Button>
            <Button>Spaell</Button>
            <Separator />
            <Button>Cut</Button>
            <Button>Copy</Button>
            <Button>Paste</Button>
            <Separator />
            <Button>Find</Button>
            <Button>Replace</Button>
        </ToolBar>
    </ToolBarTray>


    <avalonDock:DockingManager x:Name="dockingManager" Margin="0,52,0,28" VerticalAlignment="Stretch" DockPanel.Dock="Top" Grid.Column="0" AllowMixedOrientation="True" IsManipulationEnabled="False" UseLayoutRounding="True">
        <avalonDock:LayoutRoot>     

            <avalonDock:LayoutPanel Orientation="Vertical">
                <avalonDock:LayoutDocumentPaneGroup DockMinHeight="70">
                    <avalonDock:LayoutDocumentPane>
                        <avalonDock:LayoutDocument Title="Doc1">
                            <TextBox/>
                        </avalonDock:LayoutDocument>
                        <avalonDock:LayoutDocument Title="Doc2">
                            <TextBox/>
                        </avalonDock:LayoutDocument>
                    </avalonDock:LayoutDocumentPane>
                    <avalonDock:LayoutDocumentPane >

                    </avalonDock:LayoutDocumentPane>
                </avalonDock:LayoutDocumentPaneGroup>

                <avalonDock:LayoutAnchorablePaneGroup IsMaximized="True" DockMinHeight="70" DockHeight="250">
                    <avalonDock:LayoutAnchorablePane>
                        <avalonDock:LayoutAnchorable Title="Output">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>

                        <avalonDock:LayoutAnchorable Title="Error List">
                            <TextBox/>
                        </avalonDock:LayoutAnchorable>

                    </avalonDock:LayoutAnchorablePane>
                </avalonDock:LayoutAnchorablePaneGroup>


               </avalonDock:LayoutPanel>



            <avalonDock:LayoutRoot.RightSide>
                <avalonDock:LayoutAnchorSide>
                    <avalonDock:LayoutAnchorGroup>

                        <avalonDock:LayoutAnchorable Title="Properties" AutoHideMinWidth="200">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>

                        <avalonDock:LayoutAnchorable Title="Project Explorer" AutoHideMinWidth="200">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>

                        <avalonDock:LayoutAnchorable Title="File Explorer" AutoHideMinWidth="200">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>
                    </avalonDock:LayoutAnchorGroup>

                </avalonDock:LayoutAnchorSide>
            </avalonDock:LayoutRoot.RightSide>



            <avalonDock:LayoutRoot.LeftSide>

                <avalonDock:LayoutAnchorSide>
                    <avalonDock:LayoutAnchorGroup>

                        <avalonDock:LayoutAnchorable Title="Project Dashboard" AutoHideMinWidth="200">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>

                        <avalonDock:LayoutAnchorable Title="Hardware Toolbox" IsMaximized="True" CanAutoHide="True" IsActive="True" AutoHideMinWidth="200">
                            <ListBox/>
                        </avalonDock:LayoutAnchorable>

                        <avalonDock:LayoutAnchorable Title="Logic Building Blocks" AutoHideMinWidth="200">
                            <RichTextBox/>
                        </avalonDock:LayoutAnchorable>                        


                    </avalonDock:LayoutAnchorGroup>
                </avalonDock:LayoutAnchorSide>
            </avalonDock:LayoutRoot.LeftSide>                
        </avalonDock:LayoutRoot>
        </avalonDock:DockingManager>




    <StatusBar Height="22" HorizontalAlignment="Stretch" Margin="2,322,0,0" Name="statusBar1" VerticalAlignment="Bottom" DockPanel.Dock="Bottom"/>
</Grid>

EN

回答 2

Stack Overflow用户

发布于 2012-12-12 19:36:58

我建议使用这样的动态布局:

代码语言:javascript
复制
<Grid>
<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>//<-- for menu
    <RowDefinition Height="Auto"/>//<-- for toolbar
    <RowDefinition Height="*"/>//<-- for docking manager
    <RowDefinition Height="Auto"/>//<-- for status bar
</Grid.RowDefinitions>
</Grid>

对于子控件的动态布局排列,始终使用自动或起始网格长度。

Ado

票数 2
EN

Stack Overflow用户

发布于 2015-01-07 16:21:56

我知道这是旧的,但我也花了一段时间才弄明白这一点(在.NET 4.5的WPF上的AD2.0),所以我将张贴给其他可能使用它作为源码的人。来自adospace的答案是可行的。但是,您还必须更改代码。

从DockingManager中删除顶部页边距,除非您有其他需要。我的布局看起来很奇怪,直到我意识到在使用网格的RowDefinitions之前我仍然有一个上边距设置。此外,将DockPanel.Dock="Top"从菜单中删除,除非您有其他事情要做。我也没有设置VerticalAlignment

这是我得到的,工作正常,包括与多个乐队。使用一个AD测试应用程序,它已经有了根网格(gdlayoutRoot),所以你可以使用那个。

代码语言:javascript
复制
<Grid Name="gdlayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Menu IsMainMenu="True" Name="menuMain" Grid.Row="0">
        <MenuItem Header="_File" Name="File">
            <MenuItem Header="_New" Name="New" />
        </MenuItem>
        <MenuItem Header="_Edit" Name="Edit" />
        <MenuItem Header="_Document" Name="Document">
            <MenuItem Header="Import From _XML">
                <MenuItem Header="Entity" Name="ImportFromXML"  Click="ImportFromXML_Click" />
            </MenuItem>
        </MenuItem>
    </Menu>
    <ToolBarTray Grid.Row="1">
        <ToolBar Band="0" BandIndex="0">
            <Button Content="Stuff"/>
        </ToolBar>
    </ToolBarTray>
    <ad:DockingManager x:Name="dockingManager" Grid.Row="3">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12944523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档