2012-10-29 3 views
5

Quando premo "Maiusc + Spazio" per digitare un semispazio (quando scrivo in persiano) in un oggetto RichTextBox, inserisce solo lo spazio. Digita correttamente tutti gli altri caratteri persiani, ma quando si parla di "Maiusc + Spazio", digita solo lo spazio.Come posso digitare half-space in RichTextBox?

Il nome di questo personaggio è "ZERO WIDTH NON-JOINER" e le informazioni sono fornite in questo collegamento: http://www.fileformat.info/info/unicode/char/200c/index.htm.

Devo dire che ho risolto il problema gestendo l'evento previewKewDown; ma mi piace sapere qual è il problema con questa combinazione di tasti in un RichTextBox.

grazie.

+0

hai provato a cambiare la cultura della casella di testo RTF? –

+0

@D J. grazie, ma non penso che il problema sia con la lingua o la cultura – Ramin

+0

Hai lo stesso problema con un 'TextBox'? –

risposta

1

Credo che questa funzionalità debba essere programmata come parte del controllo (o il RichTextBox o qualche classe ereditata), ma sembra che questo non sia il caso.

Un'alternativa che ho trovato su another website era di premere Alt + 0157(utilizzare la tastiera con NumLock ha permesso di entrare ogni cifra, uno alla volta), anche se questo non è buono come la vostra soluzione di rilevante dell'evento previewKewDown.

Symbol Screen

1

Credo che il problema è semplicemente con il layout di tastiera in Windows. Il layout di tastiera di Windows per Persian semplicemente non supporta ZWNJ. Se si utilizza Iranian Standard Persian Keyboard (ISIRI 9147) (Versione 2.0) da Persian Computing Community Site, sarà disponibile.

+0

Grazie, ma sto usando questo layout – Ramin

0

Ero di fronte allo stesso problema e ho risolto il problema in code-behind gestendo l'evento PreviewKeyDown. Volevo solo aggiungere che la mia piccola ricerca sull'argomento mi ha fatto pensare che l'attributo xml:space sull'elemento sottostante Run possa essere la causa del problema. Leggi come vengono elaborati gli spazi in XAML here.