微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用 XAML 岛和 WindowsXamlHost 在 WPF 中包含自定义 C++\WinRT UWP 控件?

如何解决是否可以使用 XAML 岛和 WindowsXamlHost 在 WPF 中包含自定义 C++\WinRT UWP 控件?

我有一个 WPF 应用程序,它太繁重,无法在 UWP 中批量重写。某些 UWP 控件将使用 SwapChainPanel,因此使用 C++/WinRT 来管理 DirectX。为了确定在 UWP 中实现部分应用程序并将它们包含在 WPF 中的可行性,我在 minimal sample app 之后做了一个 Microsoft documentation,试图在面向 .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 Desktop Compatible" option 并确保将其设置为“是”。没有变化。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。