我有一个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" />
这完全符合我的意愿;但是,当VerticalScrollBars可见时,如果您快速单击ScrollBar,则会触发txtComments_MouseDoubleClick事件。有没有办法可以通过单击ScrollBar而不是文本框的主体来更改此行为或检测到事件被触发?
我想要这样做的主要原因是,如果你试图通过双击滚动条向下滚动事件被触发,这会导致应用程序沿着那条路走下去,如果那不是用户,这非常烦人预期的行动。
答案 0 :(得分:12)
在双击处理程序中,检查 MouseButtonEventArgs 上的 OriginalSource 属性。该源将告诉您它是实际滚动条(重复按钮)还是文本框。类似的东西:
if (e.OriginalSource is TextBox)
{
// Do your stuff.
}
else
{
// From the scroll-bar.
}