使用devexpress wpf使文档面板左侧或右侧

时间:2015-07-27 10:37:24

标签: c# wpf mvvm devexpress

我正在将文档面板动态添加到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);
        }

历史视图模型只不过是从该用户控件中获取的视图模型。

Thanx提前帮助你!

1 个答案:

答案 0 :(得分:0)

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;
}