我正在尝试创建一个可重复使用的 System:Char 我的价值 xaml 资源。

我有:

xmlns:s="clr-namespace:System;assembly=mscorlib"

然后:

<s:Char x:Key="MaskPromptChar">#</s:Char>

我得到一个例外:

The type 'Char' was not found. [Line: 8 Position: 44]

但...我也有:

<s:Double x:Key="DefaultControlWidth">200</s:Double>

和...

<s:String x:Key="ApplicationTitle">My Title</s:String>

两个都 StringDouble 工作正常。

想法??

有帮助吗?

解决方案

此代码适用于我在两个Silverlight和WPF。

<UserControl.Resources>
<sys:Double x:Key='myDouble'>4</sys:Double>
<sys:Char  x:Key='myChar'>#</sys:Char>
</UserControl.Resources>
<StackPanel x:Name="LayoutRoot">
  <PasswordBox Password='aaa'
               PasswordChar='$' />
  <PasswordBox Password='aaa'
               PasswordChar='{StaticResource myChar}' />
</StackPanel>

什么属性,你想为char分配?

其他提示

我的猜测是 Char是一个结构体, ,而不是一个对象,您真正看到的是表示 Unicode 的 16 位整数值的装箱。我倾向于将 XAML 视为一种专门化的序列化 物体, ,如果 Char 实际上是一个 结构体, ,这个模型可能会崩溃。

您可能需要考虑硬着头皮使用长度为 1 的字符串。

更新: :我同意gmcalab的可靠推理,并在此基础上使用mscorlib的命名空间和相应的字符资源进行了实验。 有效 顺利。(我们现在正在考虑命名空间或库冲突问题吗?)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top