3

我正在尝试在我的资源中创造可重用的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>

两者都String工作Double正常。

想法??

4

2 回答 2

1

此代码在 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 分配给什么属性?

于 2010-10-04T17:47:09.517 回答
0

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

您可能要考虑咬紧牙关并改用长度为 1 的字符串。

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

于 2010-10-04T16:10:27.423 回答