2016-10-02 5 views
1

Ich möchte eine WPF-TextBox haben, die, wenn Sie ein Leerzeichen darin eingeben, diesen Speicherplatz als Punkt oder ein anderes Zeichen zeigt (wobei natürlich immer noch das Leerzeichen als Wert gespeichert wird).Explizites Anzeigen von Leerzeichen in einer WPF-TextBox

Zum Beispiel, wenn ich in <space><space>abc geben, möchte ich die TextBox ..abc zeigen, aber wenn ich seine .Text bekommen, sollte es noch <space><space>abc zurück.

+0

http://stackoverflow.com/questions/24202565/display-whitespace-in-a-textbox-as-a-different-character – YuvShap

Antwort

1

Sehen Sie, ob dies Ihr Problem löst.

public class NewTextBox : TextBox 
{ 

    static NewTextBox() 
    { 
     TextBox.TextProperty.OverrideMetadata(typeof(NewTextBox), 
      new FrameworkPropertyMetadata(
       "n/a", 
       TextBox.TextProperty.DefaultMetadata.PropertyChangedCallback, 
       new CoerceValueCallback(textValueCallback))); 
    } 

    private static object textValueCallback(DependencyObject d, object baseValue) 
    { 
     return baseValue.ToString().Replace(' ', '.'); 
    } 

    public new string Text 
    { 
     get { return base.Text.Replace('.', ' '); } 
    } 

} 
+1

Es tut in der Tat, obwohl Herumspielen mit 'Text' ist * nicht * Der richtige Weg, wenn Sie die Datenbindung verwenden. Einfacher, einfach eine zusätzliche, nicht kontaminierte Eigenschaft einzuführen. –

Verwandte Themen