在MAUI和WPF之间共享资源

bzzcjhmw  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(259)

我写C #/WPF应用程序已经很多年了,但是我已经开始尝试一些使用MAUI的应用程序。
随着时间的推移,我已经将图标和其他视觉资源收集到一个类库中,该类库具有以下标记:

<TargetFramework>net7.0-windows</TargetFramework>
<UseWpf>true</UseWpf>

我的图标然后加载为XAML从资源字典取决于应用程序的主题等,这一直是一个非常好的方式有一个单一的XAML文件,每个图标集和加载他们都从一个单一的库。
使用MAUI时,我首先尝试删除-windows和UseWpf标记,因此我编译的是纯共享net7.0。当然,这意味着我现有的WPF应用程序无法使用Pack表示法找到资源。
我意识到我可以为WPF和MAUI分别创建一个资源集合,但是我已经创建了相当成熟的脚本来将新图标导入到所有的图标集中,如果有一种方法可以共享一个库,那就是我想要做的。
有没有办法做到这一点?

qlckcl4x

qlckcl4x1#

不容易。
maui可能会使用xaml,但是xaml和wpf是不同的风格。
maui资源字典和wpf资源字典有不同的标题。你甚至不能共享资源字典文件。https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/resource-dictionaries?view=net-maui-7.0

<?xml version="1.0" encoding="UTF-8" ?>
<?xaml-comp compile="true" ?>
<ResourceDictionary xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
                    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

而wpf资源字典外部标记则为:

<ResourceDictionary 
           
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

如果你将资源存储为xml,那么你可以为这两个文件动态地构建资源字典。
你必须非常小心,不要使用在毛伊岛(或wpf)不起作用的东西。
即便如此,你还是会对图片这类东西感到困惑,在一个地方行得通的东西在另一个地方行不通。
我越想越觉得这是个雷区。
我怀疑这是否可行。我认为移植可能会更可行。如果你的wpf资源相当成熟,那么也许他们不会改变太多。

相关问题