Eccezione con il tipo di sistema: Char
-
27-09-2019 - |
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 ??
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?)