WPF RibbonSplitButton不会触发MouseDown或MouseLeftButtonDown事件

时间:2015-09-19 11:27:11

标签: c# wpf ribbon

我在我的应用程序中使用了带有三个子项的RibbonSplitButton。 当我一直点击按钮时,我开始一个程序,当按钮被释放时我停止。问题是RibbonSplitButton不会触发任何事件(事件发生点击异常)。 RibbonMenuItem也应该完成同样的工作。 这是我的代码: 的 XAML

<ribbon:RibbonSplitButton LargeImageSource="images/move.png"
                      Label="Muovi"
                      //incriminated methods
                      MouseLeftButtonDown="Movimento_StartContinuous"
                      MouseDown="Movimento_StartContinuous"
                      MouseLeftButtonUp="Movimento_StopContinuous"
                      TouchUp="Movimento_StopContinuous"
                      TouchDown="Movimento_StartContinuous"
                      //yeah, this work well
                      Click="Movimento_StartContinuous">
    <ribbon:RibbonMenuItem Header="Veloce"
                           //incriminated methods
                           MouseLeftButtonDown="Movimento_StartContinuous_Veloce"
                           MouseLeftButtonUp="Movimento_StopContinuous" />
    <ribbon:RibbonMenuItem Header="Normale"/>
    <ribbon:RibbonMenuItem Header="Lento"/>
</ribbon:RibbonSplitButton>

代码背后

private void Movimento_StartContinuous(object sender, RoutedEventArgs e) {
    //never go here
    e.Handled = true;
}
private void Movimento_StartContinuous(object sender, System.Windows.Input.TouchEventArgs e) {
    //never go here
    e.Handled = true;
}

我犯了哪个错误?

1 个答案:

答案 0 :(得分:1)

最顶层的元素可能是吞下这些事件(你也可以通过将e.Handled设置为true来吞下它们,但是这些处理程序永远不会像你说的那样被调用。) 。您可以尝试处理预览事件(PreviewMouseLeftButtonDownPreviewTouchDown)。

注意:并非每个事件都有预览版本。大多数与输入相关的事件都有预览版本,但例如Click事件没有。