0

我有一个 WPF 应用程序,它使用 ComboBox 和从服务器填充的项目。该控件在其当前设置中运行良好,但有一个我想解决的小问题。当我单击下拉按钮打开项目列表时,如果鼠标悬停在该项目的文本上,我只能选择项目。如果我将鼠标悬停在行上而不是直接悬停在文本上,则控件似乎无法识别应该选择该行。无论如何,是否可以将焦点设置在当前行上而不仅仅是项目上?

编辑

组合框存储在派生自处理客户端和服务器之间的网络传输的类的 UserControl 中。XAML 只是创建控件并为其分配名称,而后面的代码执行所有逻辑。在这种情况下,服务器发送用于组合框的信息,并在下面提供的片段中获取带有文本项的 XML 并将它们分配给控件本身。这一切都很好,但问题是当客户尝试选择项目时。除非鼠标直接位于文本上方,否则 ComboBox 不会注册。我想要它,只要鼠标位于与文本相同的行上,ComboBox 就会选择该项目。

XAML

<local:Control x:Class="ControlLibrary.ComboBox"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:local="clr-namespace:ControlLibrary" >
    <ComboBox Name="comboBox" FontWeight="Bold" />
</local:Control>  

C#

XmlNodeList nodelist = xmlNode.SelectNodes("Items");
comboBox.Items.Clear();
foreach (XmlNode node in nodelist)
{
    ComboBoxItem tempItem = new ComboBoxItem()
    {
        Content = node.Attributes["text"].Value
    };

    comboBox.Items.Add(tempItem);
}

提前感谢您的建议。

4

1 回答 1

1

尝试将此文本框放在停靠面板或网格内

于 2013-01-10T15:26:17.963 回答