【发布时间】:2015-02-28 21:54:22
【问题描述】:
假设您有一个带有自己的 XAML 代码的视图 (userControl),另一个窗口 (window) 也有自己的 XAML 代码。有什么方法可以将此窗口停靠到视图中(视图将重新排列 UI 以适应停靠的窗口),但如果您想移动窗口,也可以将窗口移出视图?
【问题讨论】:
标签: c# wpf xaml user-controls window
假设您有一个带有自己的 XAML 代码的视图 (userControl),另一个窗口 (window) 也有自己的 XAML 代码。有什么方法可以将此窗口停靠到视图中(视图将重新排列 UI 以适应停靠的窗口),但如果您想移动窗口,也可以将窗口移出视图?
【问题讨论】:
标签: c# wpf xaml user-controls window
查看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的文档。
【讨论】: