繁体   English   中英

C#WPF - ComboBox

[英]C# WPF - ComboBox

我正在开发一个内部使用ComboBox的自定义控件。

我的问题是当ComboBox聚焦并且下拉打开时,它似乎聚焦整个控件。 我想自动突出显示drop drown中的第一项,但是现在你必须按下向下键才能这样做。

有没有办法以编程方式突出显示ComboBox中的第一项(将只读IsHighlighted属性设置为true)? 我相信ComboBox中的IsHighlight概念与Focus不同。 另外,我通过ItemsSource绑定,所以我没有引用ComboBoxItems。

这是一种方法,虽然它可能没有涵盖所有情况 - 但你没有提供太多的细节(例如,当已经选择了一个元素时会发生什么?你还想选择第一个元素吗?如果组合框中没有选择,下面的代码将突出显示第一个元素。为了使它始终选择第一个元素, DropDownOpened事件也应该被处理。

public MainWindow()
{
    InitializeComponent();
    combobox.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);
}

void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
    if (combobox.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
    {
        (combobox.ItemContainerGenerator.ContainerFromIndex(0) as ComboBoxItem).Focus();
    }
}

(希望我理解正确,这就是你想要做的)。

它可能不是您正在寻找的但是如果您设置mycombo.SelectedIndex = 0然后mycombo.IsDropDownOpen = True它应该打开它并选择第一个项目。 它将突出显示,但也将是组合框中的值。 我不确定这是否不是预期的效果..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM