WPF:可编辑的ComboBox掉线了吗?

时间:2011-05-19 19:12:01

标签: wpf combobox

我试图创建一个既可编辑也可以放弃而不是向下的ComboBox。按下向上箭头键时,菜单也应该打开(默认情况下是向下)。

我尝试修改ComboBox的默认ControlTemplate,但它似乎没有对IsEditable的任何支持?

1 个答案:

答案 0 :(得分:2)

默认ControlTemplate不适用于IsEditable = true种类,但该样式包含一个触发器,可在设置IsEditable时更改它:

<Style.Triggers>
    <Trigger Property="IsEditable" Value="true">
        <Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}"/>
        <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
        <Setter Property="IsTabStop" Value="false"/>
        <Setter Property="Padding" Value="3"/>
        <Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}"/>
    </Trigger>
</Style.Triggers>

它将其更改为另一个ControlTemplate,其中相关部​​分是弹出窗口:

<Popup x:Name="PART_Popup" 
       AllowsTransparency="true" 
       Grid.ColumnSpan="2" 
       IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" 
       Placement="Bottom">
...
</Popup>

我认为你应该能够将Placement属性更改为Top