我试图创建一个既可编辑也可以放弃而不是向下的ComboBox。按下向上箭头键时,菜单也应该打开(默认情况下是向下)。
我尝试修改ComboBox的默认ControlTemplate,但它似乎没有对IsEditable的任何支持?
答案 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
。