2012-10-29 17 views
5

Po naciśnięciu "Shift + Spacja", aby wpisać półprzestrzeń (gdy piszę w języku perskim) w RichTextBox, wstawia po prostu spację. Napisze wszystkie pozostałe perskie znaki poprawnie, ale jeśli chodzi o "Shift + Spacja", to wpisuje tylko spację.Jak mogę wpisać półprzestrzeń w RichTextBox?

Nazwa tego znaku to "ZERO WIDTH NON-JOINER", a informacja podana jest pod tym linkiem: http://www.fileformat.info/info/unicode/char/200c/index.htm.

Powinienem wspomnieć, że naprawiłem problem przez obsługę zdarzenia previewKewDown; ale lubię wiedzieć, jaki jest problem z tą kombinacją klawiszy w RichTextBox.

dzięki.

+0

Czy próbowałeś zmienić kulturę w polu tekstowym? –

+0

@D J. dziękuję, ale nie sądzę, że problem jest związany z językiem lub kulturą. – Ramin

+0

Czy masz ten sam problem z 'TextBox'? –

Odpowiedz

1

Wierzę, że ta funkcja musiałaby zostać zaprogramowana jako część kontroli (RichTextBox lub jakaś odziedziczona klasa), ale wygląda na to, że tak nie jest.

Alternatywą znalazłem na another website było wcisnąć Alt + 0157(za pomocą klawiatury z włączonym NumLock, aby wprowadzić każdą cyfrę, po jednym na raz), chociaż nie jest tak dobry jak twój roztworu przesłanianie zdarzenie previewKewDown.

Symbol Screen

1

Myślę, że problem jest po prostu ze swoim układ klawiatury w systemie Windows. Układ klawiatury Windows dla języka perskiego po prostu nie obsługuje ZWNJ. Jeśli używasz standardowej irańskiej klawiatury irańskiej (ISIRI 9147) (wersja 2.0) z Persian Computing Community Site, będzie dostępna.

+0

Dzięki, ale używam tego układu – Ramin

0

Stawiłem czoła temu samemu problemowi i rozwiązałem problem z opóźnieniem kodu, obsługując zdarzenie PreviewKeyDown. Po prostu chciałem dodać, że moje małe badania w tej sprawie sprawiły, że pomyślałem, że atrybut xml:space na podstawowym elemencie Run może być przyczyną problemu. Przeczytaj o sposobie przetwarzania białych znaków w XAML here.