WPF.NETCore3.0在Xaml中映射语言原语类型

WPF.NETCore3.0在Xaml中映射语言原语类型,wpf,xaml,.net-core,Wpf,Xaml,.net Core,在将WPF应用程序从NETFramework4.7转换为.NETCore3.0时,我面临的一个问题是在XAML中映射Double等基本类型的问题。在NET Framework中,此XAML工作得非常好: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

在将WPF应用程序从NETFramework4.7转换为.NETCore3.0时,我面临的一个问题是在XAML中映射Double等基本类型的问题。在NET Framework中,此XAML工作得非常好:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    >

   <sys:Double x:Key="BaseSize">10</sys:Double>
</ResourceDictionary>

10
但是.Net核心中不存在mscorlib。如何在.NETCore3中映射XAML中的基元类型

我试过这个:

但对于WPF而言,这不起作用,正如此处所述:


“在WPF中,您可以使用XAML 2009功能,但只能对未进行标记编译的XAML使用。WPF的标记编译XAML和XAML的BAML形式目前不支持XAML 2009关键字和功能。”

在针对.NET Core 3.0时,您可以使用完全相同的标记,即
xmlns:sys=“clr namespace:System;assembly=mscorlib”
确实有效。对
mscorlib
的任何引用都会自动类型转发到
System.Runtime

如果你不相信我,试着建立解决方案或者看看


编辑:从.NET Core 3.1开始,您应该将
assembly=mscorlib
替换为
assembly=System.Runtime

我遇到了完全相同的错误,这让我陷入了白费力气。在我的例子中,它是一个不相关的缺失资源。给出的错误具有误导性,修复了资源和原语类型错误。在.NET Core 3.1中,您需要指定
assembly=System.Runtime
,而不是
assembly=mscorlib