Domanda

Sto cercando di creare un valore System:Char riutilizzabile nelle mie risorse xaml.

ho:

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

Quindi:

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

ottengo un'eccezione:

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

Ma ... ho anche:

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

E ...

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

Sia String e il lavoro Double bene.

Idee ??

È stato utile?

Soluzione

Questo codice funziona per me sia in Silverlight e 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>

Cosa immobile stai cercando di assegnare il char a?

Altri suggerimenti

La mia ipotesi è che Char è un struttura, piuttosto che un oggetto, e ciò che è realmente state guardando è la boxe di un valore intero a 16 bit che rappresenta Unicode. Io tendo a guardare XAML come una serializzazione specializzazione delle oggetti , e se Char è in realtà un struct , questo modello può abbattere.

Si potrebbe prendere in considerazione mordere la pallottola e utilizzando una stringa di lunghezza invece.

Aggiorna : Sono d'accordo con linea continua di gmcalab di ragionamento, e sulla base di tale condotto un esperimento utilizzando uno spazio dei nomi per mscorlib e la risorsa carattere corrispondente. Ha funzionato senza intoppi. (Siamo ora di fronte a un namespace o un problema di collisione biblioteca?)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top