【问题标题】:Respond to WPF ComboBox DoubleClick of item响应项目的 WPF ComboBox DoubleClick
【发布时间】:2014-05-12 18:21:10
【问题描述】:

如何响应 WPF ComboBox 的 ComboBoxItem 被双击?现在,当它被双击时,它会关闭 ComboBox 并单击下面的任何内容。我想对被双击的项目采取行动并阻止事件继续进行。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    最好的办法是在组合框的ItemTemplate 中有一个控件,它将占据ComboBoxItem 的整个空间并处理DoubleClick 事件。像这样的:

    <ComboBox HorizontalContentAlignment="Stretch">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <Button Background="Transparent"
                        BorderBrush="Transparent"
                        MouseDoubleClick="Button_MouseDoubleClick" />
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    

    【讨论】:

      【解决方案2】:

      我不知道是否还有人对此感兴趣,但不幸的是,我花了很多时间研究解决方法,但没有成功。最后,我找到了一个效果不错的解决方案,和 Adi 的评论类似。

      1) 在 ComboBox 控件的文本框区域上放置一个 TextBox。不要覆盖下拉按钮。 2) 通过代码或 IDE 在此 TextBox 上使用“BringToFront”运算符。 3) 将 TextBox 的 Data Binding“Text”属性设置为与 ComboBox 相同的绑定源和字段。 4)为TextBox设置DoubleClick事件,做任何你想做的事。

      就是这样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        相关资源
        最近更新 更多