Раскройте комбо-бокс и его элементы, когда он получит фокус - PullRequest
5 голосов
/ 08 сентября 2010

Я хочу увеличить высоту выпадающего списка всякий раз, когда этот выпадающий список получает фокус.

Я использовал следующий код для увеличения высоты поля со списком.

<Style TargetType="{x:Type ComboBox}">    
<Style.Triggers>    
    <Trigger Property="IsKeyboardFocusWithin" Value="True">    
        <Setter Property="RenderTransform">   
            <Setter.Value>   
                <ScaleTransform ScaleX="1" ScaleY="2" />   
            </Setter.Value>   
        </Setter>   
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>    
        <Setter Property="Panel.ZIndex" Value="99999"/>    
    </Trigger>    
</Style.Triggers>  
</Style>

Проблема:

Когда я впервые фокусируюсь на Combobox, список элементов Combobox открывается в обычном режиме. Но если я снова нажму на поле со списком, откроется список элементов со списком, а также увеличится высота элементов списка.

Но я хочу, чтобы элементы списка со списком расширялись даже при первом щелчке (фокус). Также высота поля со списком должна быть в расширенном режиме, даже когда я выбираю элемент в поле со списком.

Заранее спасибо

1 Ответ

22 голосов
/ 08 сентября 2010

Это то, что вы хотите?

        <Style TargetType="{x:Type ComboBox}">
            <Style.Triggers>
                <Trigger Property="IsKeyboardFocusWithin" Value="True">
                    <Setter Property="IsDropDownOpen" Value="true" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
...