WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

编程入门 行业动态 更新时间:2024-10-19 22:32:53

WindowsXamlHost:在 WPF 中使用 UWP <a href=https://www.elefans.com/category/jswz/34/1769529.html style=控件库中的控件"/>

WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项。不过,通常更有实际价值的是更复杂的 UWP 控件的引入,通常是一整个 Page。

本文将介绍如何在 WPF 项目中引用 UWP 的控件库。


本文内容

      • 创建一个 UWP 控件库
      • 对 WPF 项目的准备工作
      • 不方便的引入方式
      • 编辑 UWP 项目文件
      • 重新加载项目并编译
      • 在 WPF 项目中间接引用 UWP 控件库
      • 在 WPF 项目中使用 UWP 控件库中的控件
        • 参考资料

创建一个 UWP 控件库

建议专门为你复杂的 UWP 控件创建一个 UWP 控件库。在这个控件库中的开发就像普通 UWP 应用一样。这样比较容易创建出更复杂的 UWP 控件出来,而不会与 WPF 项目产生太多的影响。


▲ 创建一个 UWP 控件库


▲ 选择 SDK 版本

对 WPF 项目的准备工作

你依然需要阅读 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文,以便将你的 WPF 项目改造成可以访问 UWP 类型的项目。

不方便的引入方式

你如果直接让 WPF 项目添加 UWP 项目的引用,将会得到一个错误提示:

也就是说并不能直接完成这样的引用。

也许将来 WPF 项目格式更新或者 Visual Studio 的更新能为我们带来这样更直接此引用方式。不过现在来看,还不能如此方便地使用。

编辑 UWP 项目文件

是的,你需要手工编写 UWP 的项目文件。

如果你阅读过 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 这篇文章,或者已经 理解了 C# 项目 csproj 文件格式的本质和编译流程,那么对这里 csproj 文件的编辑应该不会感觉到陌生或者害怕。当然,即便你没有编辑过或者不理解 csproj 也不用担心,你只需要按照本文要求进行操作即可。

现在,右击卸载项目,再右击编辑项目文件:


▲ 编辑项目文件

找到 Import targets 的哪一行,你需要在那一行前面的任意位置添加以下特别标注为新增的几行:

++  <PropertyGroup>
++    <EnableTypeInfoReflection>false</EnableTypeInfoReflection>
++    <EnableXBindDiagnostics>false</EnableXBindDiagnostics>
++  </PropertyGroup><Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />

随后,还要在以上 targets 之后再添加以下代码:

<PropertyGroup><!-- 这里需要填写你的 WPF 项目的路径 --><HostFrameworkProjectFolder>$(ProjectDir)..\Whitman.Wpf

更多推荐

WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

本文发布于:2024-02-25 14:10:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699233.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控件   库中   WindowsXamlHost   WPF   UWP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!