Я пишу надстройку SolidWorks, в которой я могу разместить WPF только в Winforms Elementhost. Теперь я хочу использовать всплывающее окно из Mahapps.Metro, которое зависит от размещения в MetroWindow. Есть ли способ использовать всплывающее окно из пользовательского элемента управления WPF? Я использую .NET 4.6.2, Mahapps.Metro 1.6 и SolidWorks 2018.
Использование всплывающих окон Mahapps.Metro в Elementhost
Ответы (2)
Похоже, информация, которую я нашел, здесь и здесь устарело. Я только что установил пакеты NuGet Mahapps.Metro и Mahapps.Metro.Iconpacks, и все работает, как ожидалось.
Если кто-то пытается сделать это и в надстройке SolidWorks, обязательно вручную загрузите новую версию System.Windows.Interactivity, потому что Solid загружает старую версию из базового каталога приложения, которая несовместима с Mahapps.Metro!
Будьте очень осторожны при работе с надстройками .NET для solidworks. Если ваше приложение использует стороннюю библиотеку пользовательского интерфейса, вам необходимо скопировать эти сборки, на которые есть ссылки, в каталог главного приложения (sldworks.exe). По какой-то причине приложение домена - это приложение для хостинга exe, а не dll. CLR будет искать ссылки в каталоге sldworks.exe и не найдет, приложение выдаст неприятное исключение, которое приведет к сбою вашего SOLIDWORKS.
UserControl
может абсолютно самостоятельно разместитьFlyout
. Настоящая проблема в том, что красивая круглая кнопкаFlyout
со стрелкой внутри не очень хорошо переносится наElementHost
: все, что вы получаете, - это квадратная кнопка с каким-то мусором внутри. Но в остальном он отлично работает до открытия и закрытияFlyout
. - person jsanalytics   schedule 06.03.2018TextBlock
. - person jsanalytics   schedule 06.03.2018