将WinUI与WPF集成(现有的和新的)

frebpwbc  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(291)

目前,我们正在尝试改进现有的WPF应用程序UI。为此,我们正在尝试使用WinAppSDK来使用Winui3控件。
随后采取了步骤。
创建了新的WPF应用程序从Nuget包安装了最新版本的WinAppSDK
通过在APP.Xaml中包含XAMLControlResources引用了winUI控件
但是我无法访问MicrosoftIidoIidoXAML中的控件,它说不存在。
请告知我是否正在尝试正确的方法。

App.XAML
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="using:Microsoft.UI.Xaml.Controls" 
    xmlns:controls1="clr-namespace:ABI.Microsoft.UI.Xaml.Controls;assembly=Microsoft.WinUI"
    StartupUri="MainWindow.xaml">
    <Application.Resources>
        <controls1:XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"  x:Key="winAppControl"/>
    </Application.Resources>
</Application>

MainWindow.Xaml

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:muxc="using:Microsoft.UI.Xaml.Controls;assembly=Microsoft.WinUI"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800"
        
        <muxc:TreeView>
    <muxc:TreeView.RootNodes>
        <muxc:TreeViewNode Content="Flavors">
            <muxc:TreeViewNode.Children>
                <muxc:TreeViewNode Content="Vanilla"/>
            </muxc:TreeViewNode.Children>
        </muxc:TreeViewNode>
    </muxc:TreeView.RootNodes>
    </muxc:TreeView>
</Window>

我收到错误,因为找不到资源

xzlaal3s

xzlaal3s1#

正如Simon Mourier所提到的,WinUI 3和WPF是完全不同的技术。你不能轻易地混合它们,因为它们使用完全不同的技术来呈现控件(例如,WPF是.NET,而WinUI 3是用C++/WinRT编写的)。
唯一的解决方案是使用XAML岛,但是它们不能作为稳定版本的一部分用于WinUI 3。到目前为止,唯一的方法是使用WinUI 3的实验版本,但即使这样,也不清楚它是否会很快被带到稳定版本的渠道(或根本)。

相关问题