WPF TextBox DoubleClick事件快速使用滚动条时触发

Nat*_*ate 2 .net wpf scroll textbox event-handling

我有一个WPF TextBox,定义如下:

<TextBox Text="{Binding Path=/Comments}" 
    Margin="351,193.91,10,36" 
    x:Name="txtComments" 
    IsReadOnly="True" 
    VerticalScrollBarVisibility="Auto" 
    LostFocus="txtComments_LostFocus" 
    MouseDoubleClick="txtComments_MouseDoubleClick" 
    AcceptsReturn="True" />
Run Code Online (Sandbox Code Playgroud)

这完全符合我的意愿; 但是,当VerticalScrollBars可见时,如果您快速单击ScrollBar,则会触发txtComments_MouseDoubleClick事件.有没有什么办法可以通过单击ScrollBar而不是文本框的主体来更改此行为或检测到事件被触发?

我想要这样做的主要原因是,如果你试图通过双击滚动条向下滚动事件被触发,导致应用程序沿着那条路走下去,如果那不是用户想要的动作,这是非常烦人的.

Cha*_*lie 12

在双击处理程序中,检查MouseButtonEventArgs上的OriginalSource属性.该源将告诉您它是实际滚动条(重复按钮)还是文本框.就像是:

if (e.OriginalSource is TextBox)
{ 
    // Do your stuff.
}
else
{
    // From the scroll-bar.
}
Run Code Online (Sandbox Code Playgroud)