Xceed AvalonDock - Revit MainWindow.FindFirstChild returns 无
Xceed AvalonDock - Revit MainWindow.FindFirstChild returns nul
我是一名对 C# 比较陌生的架构师,我正在尝试在我自己的工具栏中实现 Ehsan Iran-Nejad 惊人的 PyRevit 彩色选项卡。
不幸的是,这将返回空值:
public static Xceed.Wpf.AvalonDock.DockingManager GetDockingManager(UIApplication uiapp)
{
var wndRoot = (MainWindow)UIAppEventUtils.GetWindowRoot(uiapp);
if (wndRoot != null)
{
return MainWindow.FindFirstChild<Xceed.Wpf.AvalonDock.DockingManager>(wndRoot);
}
return null;
}
从外部命令启动:
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class StartGroupingTabsExt : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
if(DocumentTabEventUtils.IsUpdatingDocumentTabs)
{
DocumentTabEventUtils.StopGroupingDocumentTabs();
}
else
{
DocumentTabEventUtils.StartGroupingDocumentTabs(commandData.Application);
}
return Result.Succeeded;
}
}
我不太明白哪里出了问题,如有任何建议,我们将不胜感激。
干杯,
马克
我在构建类似的东西时遇到过类似的事情。我从 nuget 引用了 xceed.wpf.avalondock 库,这就是导致它的原因。也许你做过同样的事情?如果我改为引用 Revit 安装文件夹中的 dll,它可以正常工作。
我是一名对 C# 比较陌生的架构师,我正在尝试在我自己的工具栏中实现 Ehsan Iran-Nejad 惊人的 PyRevit 彩色选项卡。
不幸的是,这将返回空值:
public static Xceed.Wpf.AvalonDock.DockingManager GetDockingManager(UIApplication uiapp)
{
var wndRoot = (MainWindow)UIAppEventUtils.GetWindowRoot(uiapp);
if (wndRoot != null)
{
return MainWindow.FindFirstChild<Xceed.Wpf.AvalonDock.DockingManager>(wndRoot);
}
return null;
}
从外部命令启动:
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class StartGroupingTabsExt : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
if(DocumentTabEventUtils.IsUpdatingDocumentTabs)
{
DocumentTabEventUtils.StopGroupingDocumentTabs();
}
else
{
DocumentTabEventUtils.StartGroupingDocumentTabs(commandData.Application);
}
return Result.Succeeded;
}
}
我不太明白哪里出了问题,如有任何建议,我们将不胜感激。
干杯,
马克
我在构建类似的东西时遇到过类似的事情。我从 nuget 引用了 xceed.wpf.avalondock 库,这就是导致它的原因。也许你做过同样的事情?如果我改为引用 Revit 安装文件夹中的 dll,它可以正常工作。