如何禁用WPF列表框中的鼠标单击?

时间:2018-09-20 09:18:27

标签: c# wpf xaml

我需要禁用列表框或某些控件中的鼠标单击。只禁用click事件处理程序和鼠标光标。如何禁用它? 请告诉我宝贵的建议。 如果这对您来说是简单的问题,请原谅我。

2 个答案:

答案 0 :(得分:1)

IsHitTestVisible设置为False

答案 1 :(得分:0)

我的问题是“为什么要这样做?也许还有另一种方法可以对要实现的目标进行编程。”

但是,如果您仍然希望禁用鼠标单击事件,那么我将为列表框及其项目分配一个空的事件处理程序。

XAML:

<ListView MouseDown="emptyEventHandler" MouseDoubleClick="emptyEventHandler" >
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="MouseDown" Handler="emptyEventHandler" />
            <EventSetter Event="MouseDoubleClick" Handler="emptyEventHandler" /> 
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

和代码(以实际捕获事件并防止其冒泡):

private void emptyEventHandler(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

这样,您仍然可以对 Preview 事件处理程序中的鼠标单击和双击事件做出反应。如果要完全“隐藏”这些事件,请改为处理 PreviewMouseDown PreviewMouseDoubleClick 事件。