使用devexpress wpf为文档面板设置左坞或右坞

本文关键字:设置 devexpress wpf 文档 使用 | 更新日期: 2023-09-27 18:04:46

我动态地将documentpanel添加到docklayoutmanager管理器中的文档组中,所有这些管理器中都包含用户控件。现在,我已经停靠在某个地方或其他地方,但除了两个包含某种图表的文档面板外,它们都不能移出。基本上,它们都是靠在一起的,它们可以漂浮起来,也可以停靠到原来的位置。但是如何使它只停靠在左边或右边,而不是顶部底部或选项卡。

我是这样动态创建这些面板的:

private void History()
        {
            string guid = System.Guid.NewGuid().ToString("N");
            while (char.IsDigit(guid[0]))
                guid = System.Guid.NewGuid().ToString("N");
            HistoryViewModel historyViewModel = new HistoryViewModel
            {
                Caption = "History",
                MinWidth = 300,
                MinHeight = 200,
                ViewName = "History",
                HistoryImage = layoutFilePath.calenderImage,
                BindableName = guid,
                CanDrag = true,
                CanDock = true,
                CanFloat = true
            };
            ((IMVVMDockingProperties)historyViewModel).TargetName = "PanelHost";
            WidgetList.Add(historyViewModel);
        }

历史视图模型只是一个从用户控件中获取的视图模型。

提前感谢您的帮助!

使用devexpress wpf为文档面板设置左坞或右坞

DockLayoutManager中,您可以使用DockLayoutManager.DockItemDocking事件。只需检查DockItemDockingEventArgs.DockType属性。如果不等于DockType.LeftDockType.Right,则将DockItemDockingEventArgs.Cancel属性设置为false
下面是示例:

private void DockLayoutManager_DockItemDocking(object sender, DockItemDockingEventArgs e)
{
    e.Cancel = e.DockType != DockType.Left && e.DockType != DockType.Right;
}