在UWP应用程序中使用WPF dll

时间:2015-12-27 04:00:04

标签: c# wpf xaml reference uwp

我正在编写UWP应用,由于某种原因,我无法引用PresentationFramework.dll。它包含我想要使用的一些WPF控件(具体来说,System.Windows.Controls.DataGrid,但它们在参考管理器中的Universal Windows>> Extensions下不可用。为什么会这样,我该如何解决?

2 个答案:

答案 0 :(得分:17)

TL; DR:您无法在UWP中使用WPF控件。

WPF和UWP是两个完全不同的API,具有不同的.NET框架。虽然WPF可以访问完整的.NET Framework,但UWP具有更加有限的API。如果您想在不同的平台和编译器上阅读更多内容,msdn blog post是一个很好的切入点。

enter image description here

因此您无法添加任何标准dll作为UWP应用程序的参考。如果您想在WPF和UWP之间共享代码,则必须使用Portable Class Library,您可以在其中定位所需的平台。

enter image description here

由于WPF和UWP的XAML命名空间也不同,因此您无法找到许多便携式控件。因此,对于UWP开发,您需要使用UWP控件(相当于其WPF对应项)。额外提示:如果您正在寻找第三方控件,您还可以查找“winrt”#39;作为winrt的控件用于Windows 8 / 8.1,但它是相同的技术。

答案 1 :(得分:0)

我知道这是一个老问题。甚至不去研究什么时候出来。作为社区工具包的一部分,有一个适用于 UWP 的 DataGrid:

https://docs.microsoft.com/en-us/windows/communitytoolkit/controls/datagrid

虽然这真的很令人沮丧,因为它似乎没有做一些 WPF 版本能做的事情,而这些是我需要它做的几件事。

Microsoft 确实需要为其 114 种不同的框架和平台提出新的命名约定。控件应命名为 DataGridWpf、DataGridUwp 等。

搜索 UWP DataGrid 控件的示例并找到数千个 WPF 版本的示例非常困难。只有我的两分钱。作为记录,似乎有大约 5 个指向 UWP 版本示例的活动链接。排列。

/为了增加乐趣,Telerik 和 DevExpress 有 UWP 数据网格控件,它们也称为 DataGrids。

相关问题