Pregunta

Estoy intentando crear un valor System:Char reutilizable en mis recursos xaml.

Tengo:

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

A continuación:

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

me sale una excepción:

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

Pero ... También tengo:

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

Y ...

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

Tanto String y el trabajo Double bien.

Ideas ??

¿Fue útil?

Solución

Este código funciona para mí, tanto en Silverlight y 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>

¿Qué propiedad está tratando de asignar el char a?

Otros consejos

Mi conjetura es que Char es una estructura, en lugar de un objeto, y lo que es en realidad está mirando es el boxeo de un valor entero de 16 bits que representa Unicode. Tiendo a mirar en XAML como una serialización especialización de objetos , y si Char es en realidad un struct , este modelo puede romper.

Es posible que desee considerar la posibilidad de morder la bala y el uso de una cadena de longitud uno en su lugar.

Actualizar : Estoy de acuerdo con la línea continua de gmcalab de razonamiento, y sobre esa base llevado a cabo un experimento utilizando un espacio de nombres a mscorlib y el correspondiente recurso de carácter. Se trabajó a pedir de boca. (¿Estamos ante un espacio de nombres o problema de colisión biblioteca?)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top