Vla*_*usB 10 wpf xaml .net-core
在将 WPF 应用程序从 NET Framework 4.7 转换为 .Net Core 3.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>
Run Code Online (Sandbox Code Playgroud)
但是 mscorlib 在 .Net Core 中不存在。如何在 .Net Core 3 中映射 XAML 中的原始类型?
试过这个:https : //docs.microsoft.com/en-us/dotnet/framework/xaml-services/built-in-types-for-common-xaml-language-primitives
但是对于 WPF,这不起作用,正如此处所述:
“在 WPF 中,您可以使用 XAML 2009 功能,但只能用于未标记编译的 XAML。用于 WPF 的标记编译 XAML 和 XAML 的 BAML 形式目前不支持 XAML 2009 关键字和功能。 ”
mm8*_*mm8 11
您可以在面向 .NET Core 3.0 时使用完全相同的标记,即xmlns:sys="clr-namespace:System;assembly=mscorlib"确实有效。对任何引用mscorlib的类型都会System.Runtime自动转发到。
如果您不相信我,请尝试构建解决方案或查看此 GitHub 问题。
编辑:从 .NET Core 3.1 开始,您应该替换assembly=mscorlib为assembly=System.Runtime.
| 归档时间: |
|
| 查看次数: |
2133 次 |
| 最近记录: |