0
我有一个Behavior<FrameworkElement>
,其中我注册了PreviewKeyDown
和PreviewMouseLeftButtonDown
。我已将此Behavior
附加在MenuItem
上。现在,当我点击MenuItem
时,有时ClickEvent
仍然被调用,有时不会。这就像是一个计时问题。你有什么建议如何解决这个问题,并停止调用event
?在Behavior <FrameworkElement>中处理PreviewMouseLeftButtonDown的ClickEvent
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.PreviewKeyDown += _OnPreviewKeyDown;
AssociatedObject.PreviewMouseLeftButtonDown += _OnPreviewMouseLeftButtonDown;
}
private void _OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
if (!_HasAccess())
mouseButtonEventArgs.Handled = true;
}
private void _OnPreviewKeyDown(object sender, KeyEventArgs keyEventArgs)
{
if (!_HasAccess())
keyEventArgs.Handled = true;
}
'FrameworkElement'没有'ClickEvent'。我想将这个'Behavior'附加到我想要的任何'Control'并'控制'click事件。 –
这将是一种“SecurityBehavior”。如果用户没有控制权限('Button','MenuItem' ..),应该处理/阻止'Click',并显示一种“LoginPopup”。 –