2009-07-16 10 views
0

Ich bin auf der Suche nach Text mit den wellenförmigen roten Linien, wo ein Wort falsch geschrieben ist, aber ich möchte nur den Text auswählbar, nicht editierbar. Wenn ich die IsReadOnly-Eigenschaft der TextBox auf True oder IsEnabled auf False setze, verschwinden die wellenförmigen roten Linien und ich kann sie nicht umgehen, indem ich etwas transparent mache, da dies verhindert, dass der Benutzer Textabschnitte auswählen kann.WPF: Verwenden Sie Rechtschreibprüfung für schreibgeschützte TextBox

Gibt es auf jeden Fall kann ich die roten Linien behalten, erlauben Sie den Text wählbar sein, aber verhindern, dass der eigentliche Text geändert wird?

Dank

Antwort

0

Dank David. Ich bin derzeit auf der Suche nach zwei möglichen Lösungen, Ihre und die folgenden:

Ich habe ein benutzerdefiniertes Steuerelement erstellt, die auf der Standard-TextBox basiert, aber effektiv 2 Textfelder in diesem Herrenhaus übereinander gelegt:

<TextBox Name="tbxBack" 
     Foreground="Transparent" 
     SpellCheck.IsEnabled="True" 
     TextWrapping="Wrap" 
     SnapsToDevicePixels="True"/> 
<TextBox Name="tbxFront" 
     Background="Transparent" 
     TextWrapping="Wrap" 
     SnapsToDevicePixels="True" 
     IsReadOnly="True"/> 

Ich denke, es ist ziemlich einfach, was hier vor sich geht, aber ich bin besorgt über die möglichen Overhead wird dies verursachen.

Der Grund, warum ich in die doppelte TextBox-Lösung suche, ist, dass ich mir Sorgen mache, wenn ich versuche, das Ereignis abzubrechen, könnte es mit einer Art blinken in der Steuerung enden, wenn der Text geändert wird.

2

Sie zu dem Text Änderungsereignis des Textfeldes anschließen konnte, und nur den neuen Text ablehnen. Es hätte den gleichen Effekt von readonly, ohne die Textbox auszugrauen oder die Rechtschreibprüfung loszuwerden.