2

のスタイルを設定する方法について次のを見てきましたがComboBox、編集可能なコンボ ボックスに入ったときにフォーカス効果を作成できませんでした。がフォーカスを受け取るたびComboBoxに編集モードになり、コンポーネントにはフォーカス スタイルが必要です。

基本的な問題は、編集モードに入るたびに、ComboBox実際にフォーカスがあるのは周囲ではなく、テキスト サブコンポーネントであり、テキスト コンポーネント上にの境界線スタイルTriggerを変更するを作成できなかったことです。ComboBoxトリガーから親コンポーネントを参照する方法がわかりません。

、またはスタイルトリガーを追加ControlTemplate Triggerしてみました。名前またはオプションを使用してTextBoxを参照しようとしましたが、うまくいきませんでした。簡単な例をいただければ幸いです。ComboBoxTemplateBinding

4

3 に答える 3

4

IsKeyboardFocusWithin を IsDropDownOpen にバインドする

<ComboBox ItemsSource="{Binding SortedItems}"
          StaysOpenOnEdit="True"
          IsDropDownOpen="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource Self}, Mode=OneWay}" />
于 2010-02-18T20:27:21.247 に答える
1
  private void cmbSpecialHandling_GotFocus(object sender, RoutedEventArgs e)
        {
            Thickness th = new Thickness(2);
            cmbSpecialHandling.BorderThickness = th;
            cmbSpecialHandling.BorderBrush = this.FindResource("TabFocusColor") as SolidColorBrush;
        }

        private void cmbSpecialHandling_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
        {
            Thickness th = new Thickness(2);
            cmbSpecialHandling.BorderThickness = th;
            cmbSpecialHandling.BorderBrush = this.FindResource("TabFocusColor") as SolidColorBrush;
        }

        private void cmbSpecialHandling_LostFocus(object sender, RoutedEventArgs e)
        {
            cmbSpecialHandling.BorderBrush = Brushes.Transparent;
        }
于 2010-12-13T10:19:34.990 に答える
1

コンボボックスのボーダー ブラシを設定し、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;
    }
于 2010-12-13T10:36:15.947 に答える