J'ai un Behavior<FrameworkElement>
où j'inscris PreviewKeyDown
et PreviewMouseLeftButtonDown
. J'ai joint ce Behavior
sur un MenuItem
. Maintenant, quand je clique sur le MenuItem
, parfois le ClickEvent
est toujours invoqué et parfois non. C'est comme un problème de timing. Avez-vous des suggestions pour résoudre ce problème et arrêter d'invoquer le event
?Gérer ClickEvent par PreviewMouseLeftButtonDown dans Behaviour <FrameworkElement>
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' n'a pas de' ClickEvent'. Je veux attacher ce «comportement» à n'importe quel «contrôle» que je veux et «contrôler» l'événement de clic. –
Ce sera une sorte de "SecurityBehavior". Si l'utilisateur n'a pas la permission pour un contrôle ('Button',' MenuItem' ..), le 'clic' devrait être manipulé/bloqué et une sorte de" LoginPopup "est montrée. –