Исключение с типом System:Char
Я пытаюсь создать многоразовую 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
отлично работает
Идеи??
2 ответа
Этот код работает для меня как в 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 - это структура, а не объект, и на самом деле вы видите бокс 16-битного целочисленного значения, представляющего Unicode. Я склонен рассматривать XAML как сериализацию объектов со специализацией, и если Char на самом деле является структурой, эта модель может сломаться.
Возможно, вы захотите укусить пулю и использовать вместо нее строку длины.
ОБНОВЛЕНИЕ: Я согласен с твердой аргументацией gmcalab, и на основании этого провел эксперимент, используя пространство имен для mscorlib и соответствующий ресурс персонажа. Это работало безотказно. (Мы сейчас смотрим на проблему пространства имен или библиотеки?)