diff --git a/src/Avalonia.Controls/SplitButton/SplitButton.cs b/src/Avalonia.Controls/SplitButton/SplitButton.cs
index f1d07b2679..2cafba620e 100644
--- a/src/Avalonia.Controls/SplitButton/SplitButton.cs
+++ b/src/Avalonia.Controls/SplitButton/SplitButton.cs
@@ -1,7 +1,6 @@
using System;
using System.Windows.Input;
using Avalonia.Controls.Metadata;
-using Avalonia.Controls.Mixins;
using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.Interactivity;
@@ -314,16 +313,9 @@ namespace Avalonia.Controls
}
// Must unregister events here while a reference to the old flyout still exists
- if (oldFlyout != null)
- {
- UnregisterFlyoutEvents(oldFlyout);
- }
-
- if (newFlyout != null)
- {
- RegisterFlyoutEvents(newFlyout);
- }
+ UnregisterFlyoutEvents(oldFlyout);
+ RegisterFlyoutEvents(newFlyout);
UpdatePseudoClasses();
}
@@ -415,6 +407,22 @@ namespace Avalonia.Controls
}
}
+ ///
+ /// Invoked when the split button's flyout is opened.
+ ///
+ protected virtual void OnFlyoutOpened()
+ {
+ // Available for derived types
+ }
+
+ ///
+ /// Invoked when the split button's flyout is closed.
+ ///
+ protected virtual void OnFlyoutClosed()
+ {
+ // Available for derived types
+ }
+
////////////////////////////////////////////////////////////////////////
// Event Handling
////////////////////////////////////////////////////////////////////////
@@ -464,6 +472,8 @@ namespace Avalonia.Controls
{
_isFlyoutOpen = true;
UpdatePseudoClasses();
+
+ OnFlyoutOpened();
}
}
@@ -479,6 +489,8 @@ namespace Avalonia.Controls
{
_isFlyoutOpen = false;
UpdatePseudoClasses();
+
+ OnFlyoutClosed();
}
}
}