wpf - 是否可以使用 XAML 岛和 WindowsXamlHost 在 WPF 中包含自定义 C++\WinRT UWP 控件?
问题描述
我有一个 WPF 应用程序,它过于繁重,无法在 UWP 中批量重写。一些 UWP 控件将利用SwapChainPanel
C++/WinRT 来管理 DirectX。为了确定在 UWP 中实现应用程序的某些部分并将它们包含在 WPF 中的可行性,我按照Microsoft 文档制作了一个最小的示例应用程序,该应用程序尝试在面向 .NET Core 3.1 的 WPF 应用程序中编写 UWP 控件。
<Window x:Class="WpfAppCore3._1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xh="clr-namespace:Microsoft.Toolkit.Wpf.UI.XamlHost;assembly=Microsoft.Toolkit.Wpf.UI.XamlHost"
Title="WPF App"
Height="500"
Width="800">
<StackPanel>
<xh:WindowsXamlHost InitialTypeName="UwpLib.ManagedGrid"
Height="225" />
<xh:WindowsXamlHost InitialTypeName="UwpLibNative.NativeGrid"
Height="225" />
</StackPanel>
</Window>
这适用于托管控件,例如UwpLib.ManagedGrid
但UwpLibNative.NativeGrid
不加载:
调试器显示异常:
System.BadImageFormatException: 'Bad IL format.'
该异常向我表明了构建配置问题,但我认为在这方面应用程序设置正确。这在今天的 XAML Islands 上是不可能的,还是我在示例应用程序中犯了一些配置错误?
更新1:
我发现了“Windows 桌面兼容”选项,并确保将其设置为“是”。没变。
解决方案
推荐阅读
- android - Kotlin Flow 超时结果
- latex - Lyx 修改 moderncv 空白空间
- python - 如何让机器人发回更多单词而不仅仅是第一个 [discord.py]
- c++ - 如何重置rand()函数c ++
- swift - WatchOS ScrollReader 代理缓慢滚动
- spring-boot - 在 Testcontainer Spring 引导测试中模拟服务
- visual-studio-2017 - 在 VS2017 中调试和缺少方法异常
- flutter - 如何在列表磁贴的前导属性中居中图标?
- flutter - ElevatedButton、TextButton 和 OutlinedButton 渐变
- r - 我们可以在 If 函数内部隔离吗