如何将焦点样式添加到WPF中的可编辑组合框

如何将焦点样式添加到WPF中的可编辑组合框,wpf,xaml,combobox,styling,Wpf,Xaml,Combobox,Styling,我一直在研究如何设置组合框的样式,但在进入可编辑的组合框时,我无法创建焦点效果。无论何时,组合框接收到焦点,都应进入编辑模式,并且组件应具有焦点样式 基本的问题是,每当我进入编辑模式时,真正有焦点的不是周围的组合框,但是文本子组件和我无法在文本组件上创建一个触发器,它修改了组合框的边框样式,因为我不知道如何从触发器引用父组件 我已尝试在文本框或样式触发器上添加控制模板触发器。我试图通过名称或使用TemplateBinding选项来引用组合框,但没有任何运气。请举一个简单的例子。将IsKeyboa

我一直在研究如何设置组合框的样式,但在进入可编辑的组合框时,我无法创建焦点效果。无论何时,
组合框
接收到焦点,都应进入编辑模式,并且组件应具有焦点样式

基本的问题是,每当我进入编辑模式时,真正有焦点的不是周围的
组合框
,但是文本子组件和我无法在文本组件上创建一个
触发器
,它修改了
组合框
的边框样式,因为我不知道如何从触发器引用父组件


我已尝试在
文本框
或样式触发器上添加
控制模板
触发器
。我试图通过名称或使用
TemplateBinding
选项来引用
组合框,但没有任何运气。请举一个简单的例子。

将IsKeyboardFocusWithin绑定到IsDropDownOpen

<ComboBox ItemsSource="{Binding SortedItems}"
          StaysOpenOnEdit="True"
          IsDropDownOpen="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource Self}, Mode=OneWay}" />

将combobox的边框笔刷设置在其
Gotfocus
中,并使其在失去焦点时透明:

private void comboBox_GotFocus(object sender, RoutedEventArgs e)
    {
        Thickness th = new Thickness(2);
        comboBox.BorderThickness = th;
        comboBox.BorderBrush = this.FindResource("TabFocusColor") as SolidColorBrush;
                  or
     comboBox.BorderBrush = Brushes.Green;
    }


    private void comboBox_LostFocus(object sender, RoutedEventArgs e)
    {
        comboBox.BorderBrush = Brushes.Transparent;
    }

@西德尼扬德鲁斯太棒了!当我尝试过的所有其他方法都失败时,这种方法就奏效了。谢谢
private void comboBox_GotFocus(object sender, RoutedEventArgs e)
    {
        Thickness th = new Thickness(2);
        comboBox.BorderThickness = th;
        comboBox.BorderBrush = this.FindResource("TabFocusColor") as SolidColorBrush;
                  or
     comboBox.BorderBrush = Brushes.Green;
    }


    private void comboBox_LostFocus(object sender, RoutedEventArgs e)
    {
        comboBox.BorderBrush = Brushes.Transparent;
    }