如何在WPF(C#)中创建可停靠窗口?

时间:2015-02-28 21:54:22

标签: c# wpf xaml user-controls window

假设您有一个带有自己的XAML代码的视图(userControl),另一个窗口(窗口)也有自己的XAML代码。有没有办法可以将此窗口停靠在视图中(视图将重新排列UI以容纳停靠的窗口),如果您想移动窗口,还可以将窗口移出视图?

1 个答案:

答案 0 :(得分:0)

查看AvalonDock项目。

  

AvalonDock是WPF的停靠窗口控件,可让您创建   使用全功能窗口对接系统的可自定义布局   类似于许多流行的集成开发中发现的   environements(IDE),例如Visual Studio。它包括主题和   样品让你入门。

使用示例:

<Window x:Class="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" Height="434" Width="684">
    <Grid>
        <avalonDock:DockingManager x:Name="dockingManager">
            <avalonDock:LayoutRoot>
                <avalonDock:LayoutPanel Orientation="Horizontal">
                    <avalonDock:LayoutDocumentPane/>
                    <avalonDock:LayoutAnchorablePane DockWidth="150">
                        <avalonDock:LayoutAnchorable Title="Sample Tool Pane">
                            <TextBox/>
                        </avalonDock:LayoutAnchorable>
                    </avalonDock:LayoutAnchorablePane>
                </avalonDock:LayoutPanel>
                <avalonDock:LayoutRoot.LeftSide>
                    <avalonDock:LayoutAnchorSide>
                        <avalonDock:LayoutAnchorGroup>
                            <avalonDock:LayoutAnchorable Title="Autohidden Content">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorGroup>
                    </avalonDock:LayoutAnchorSide>
                </avalonDock:LayoutRoot.LeftSide>
            </avalonDock:LayoutRoot>
        </avalonDock:DockingManager>
    </Grid>
</Window>

您可以找到的文档here