【问题标题】:How can I create a dockable window in WPF (C#)?如何在 WPF (C#) 中创建可停靠窗口?
【发布时间】:2015-02-28 21:54:22
【问题描述】:

假设您有一个带有自己的 XAML 代码的视图 (userControl),另一个窗口 (window) 也有自己的 XAML 代码。有什么方法可以将此窗口停靠到视图中(视图将重新排列 UI 以适应停靠的窗口),但如果您想移动窗口,也可以将窗口移出视图?

【问题讨论】:

    标签: c# wpf xaml user-controls window


    【解决方案1】:

    查看AvalonDock 项目。

    AvalonDock 是 WPF 的停靠窗口控件,可让您创建 使用功能齐全的窗口停靠系统可定制布局 类似于在许多流行的集成开发中发现的 环境 (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的文档。

    【讨论】:

    • 命名空间 xmlns:avalonDock 有问题
    • @aaron 什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多