在 Elementhost 中使用 Mahapps.Metro 个浮出控件

Using Mahapps.Metro Flyouts in Elementhost

我正在编写一个 SolidWorks 插件,我只能在 Winforms Elementhost 中托管 WPF。现在我想使用来自 Mahapps.Metro 的 Flyout,这取决于托管在 MetroWindow 中。有什么方法可以在 WPF 用户控件中使用 Flyout?我正在使用 .NET 4.6.2、Mahapps.Metro 1.6 和 SolidWorks 2018。

看来我找到的信息 here and here 已经过时了。我刚刚安装了 NuGet 包 Mahapps.Metro 和 Mahapps.Metro.Iconpacks,一切都按预期工作。

如果有人也试图在 SolidWorks 插件中执行此操作,请确保手动加载 System.Windows.Interactivity 的新版本,因为 Solid 正在从不兼容的应用程序基目录加载旧版本Mahapps.Metro!

在使用 .NET add-ins for solidworks 时要非常小心。如果您的应用程序使用某些 third-party UI 库,您需要将这些引用的程序集复制到主机应用程序 (sldworks.exe) 目录。出于某种原因,域应用程序是托管 exe 而不是 dll。 CLR 将在 sldworks.exe 的目录中查找引用,但没有找到,应用程序会抛出一些会导致 SOLIDWORKS 崩溃的异常异常。