WPF文本框DoubleClick事件迅速使用滚动条时,火灾(WPF TextBox DoubleC

2019-09-22 21:11发布

我有一个WPF文本框,这样的定义:

<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" />

这个作品完全一样,我想; 然而,当VerticalScrollBars是可见的,如果你点击快速滚动栏上的txtComments_MouseDoubleClick事件。 有没有什么办法可以改变这种行为,或检测到事件被点击滚动条,而不是文本框的身体被炒鱿鱼吗?

主要的原因我想这样做,是,如果你试图通过双击滚动条的事件被触发向下滚动导致应用程序走这条路,这是很烦人的,如果不是用户预期的操作。

Answer 1:

In your double-click handler, check the OriginalSource property on the MouseButtonEventArgs. That source will tell you whether it was the actual scrollbar (the repeat button), or the textbox. Something like:

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


文章来源: WPF TextBox DoubleClick Event Fires when using Scrollbars rapidly