Frage

Die WPF TextBox macht native Verwendung der System Highlight Farbe für den Hintergrund des ausgewählten Textes zu malen. Ich möchte dies außer Kraft zu setzen und es im Einklang, da sie von OS / Benutzer Thema variiert.

Für ListBoxItems gibt es eine HINWEIS: Diese Verhalten scheint WPF 4.

hinzugefügt werden
War es hilfreich?

Lösung

Wie Steve erwähnt: Hinweis: Dieses Verhalten scheint zu WPF 4.

ich in das gleiche Problem gestoßen.

Wie Dr.WPF sagt

  

"Es ist völlig unmöglich, in der   aktuelle .NET-Versionen (3.0 und 3.5   Beta). Die Steuerung ist fest einprogrammiert zu   Verwenden Sie die Systemeinstellung ... es funktioniert nicht   Blick auf die Steuervorlage überhaupt nicht. "

http: //social.msdn.microsoft.com/Forums/en-US/wpf/thread/bbffa6e3-2745-4e72-80d0-9cdedeb69f7f/

Andere Tipps

Da .NET 4, TextBoxBase.SelectionBrush

zB

<TextBox SelectionBrush="Red" SelectionOpacity="0.5"
         Foreground="Blue" CaretBrush="Blue">  

Dies ist ein Windows 8.1 .Net 4.6.1 getestet Lösung der SelectionBrush jeden TextBox in der App anzupassen:

/// Constructor in App.xaml.cs
public App() : base()
{
    // Register an additional SelectionChanged handler for appwide each TextBox
    EventManager.RegisterClassHandler(typeof(TextBox), TextBox.SelectionChangedEvent, RoutedEventHandler(_textBox_selectionChanged));
}

private void _textBox_selectionChanged(object sender, RoutedEventArgs e)
{
    // Customize background color of selected text
    (sender as TextBox).SelectionBrush = Brushes.MediumOrchid;

    // Customize opacity of background color
    (sender as TextBox).SelectionOpacity = 0.5;
}

Wenn Sie möchten, schließen RichTextBox Typname TextBox 4 mal durch TextBoxBase zu ersetzen.

Sie können einen Style für die TextBox schaffen und einen Setter für den Hintergrund schreiben. Der TextBox Stil sollte eine Standard sein, so dass jede TextBox, die unter der visuellen Struktur kommt, wird die geänderte TextBox bekommen

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}">

Versuchen Sie folgendes:

     <Trigger Property="IsHighlighted" Value="True">
                            <Setter TargetName="Border" Property="Background" Value="OrangeRed"/>
                            <Setter Property="Foreground" Value="White"/>
                        </Trigger>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top