Pergunta

Estou tentando criar um reutilizável System:Char valor no meu xaml Recursos.

Eu tenho:

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

Então:

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

Eu recebo uma exceção:

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

Mas ... eu também tenho:

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

E...

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

Ambos String e Double Funciona bem.

Ideias??

Foi útil?

Solução

Este código funciona para mim no Silverlight e no 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>

A que propriedade você está tentando atribuir o char?

Outras dicas

Meu palpite é que Char é uma estrutura, em vez de um objeto, e o que você está realmente olhando é o boxe de um valor inteiro de 16 bits representando Unicode. Eu tendem a olhar para XAML como uma serialização de especialização de objetos, e se char é realmente um estrutura, esse modelo pode quebrar.

Você pode considerar morder a bala e usar uma série de comprimento uma.

ATUALIZAR: Eu concordo com a sólida linha de raciocínio do GMCalab e, com base nessa, conduziu um experimento usando um espaço para nome ao MSCORLIB e o recurso de caractere correspondente. Funcionou sem problemas. (Agora estamos olhando para um espaço de namespace ou colisão da biblioteca?)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top