Windows演示基础项目wpf不支持int16

时间:2014-11-30 10:56:49

标签: c# wpf xaml

为什么我收到以下错误:" Windows演示基础项目wpf不支持Int16。"

我正在阅读以下MSDN文字: MSDN TEXT regrading primitives mapping

以下是我的简单代码:

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <x:Int16 x:Key="cnst">12</x:Int16>        
    </Window.Resources>

    <Grid>

    </Grid>

</Window>

为什么这段代码不起作用?需要做些什么才能让它发挥作用。 我的猜测:2006需要替换为2009以用于将来的版本。

1 个答案:

答案 0 :(得分:6)

Int16等基本类型在System命名空间(在程序集mscorlib.dll中)中定义,该命名空间未映射到x XAML命名空间。

虽然XAML 2009将这些类型映射到x命名空间,但您无法在MainWindow的XAML中直接使用它们,因为(根据XAML 2009语言功能MSDN页面中的WPF Support段)

  

在WPF中,您可以使用XAML 2009功能,但仅适用于非XAML   标记编译。用于WPF的标记编译的XAML和用于WPAM的BAML形式   XAML目前不支持XAML 2009关键字和功能。

因此,您可能只添加另一个映射System CLR命名空间的XAML命名空间,如下所示:

<Window x:Class="Test.MainWindow"
        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"
        ...>

    <Window.Resources>
        <sys:Int16 x:Key="cnst">12</sys:Int16>
    </Window.Resources>
    ...
</Window>

有关详情,请参阅MSDN上的XAML Namespaces and Namespace Mapping for WPF XAML文章。