diff --git a/InkCanvas.Controls/ToolMenuButton.xaml b/InkCanvas.Controls/ToolMenuButton.xaml
index d789f494..8a5b70f7 100644
--- a/InkCanvas.Controls/ToolMenuButton.xaml
+++ b/InkCanvas.Controls/ToolMenuButton.xaml
@@ -6,33 +6,37 @@
xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
mc:Ignorable="d"
d:DesignHeight="38" d:DesignWidth="32">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/InkCanvas.Controls/ToolMenuButton.xaml.cs b/InkCanvas.Controls/ToolMenuButton.xaml.cs
index 63ffe48e..284c4c1a 100644
--- a/InkCanvas.Controls/ToolMenuButton.xaml.cs
+++ b/InkCanvas.Controls/ToolMenuButton.xaml.cs
@@ -9,6 +9,7 @@ namespace Ink_Canvas.Controls
{
private Geometry _pendingGeometry;
private Brush _pendingBrush;
+ private static ToolMenuButton _lastPressedButton;
public static readonly DependencyProperty LabelProperty = DependencyProperty.Register(
nameof(Label), typeof(string), typeof(ToolMenuButton),
@@ -68,8 +69,8 @@ namespace Ink_Canvas.Controls
public new Brush Background
{
- get => ButtonPanel.Background;
- set => ButtonPanel.Background = value;
+ get => ButtonBorder.Background;
+ set => ButtonBorder.Background = value;
}
public GeometryDrawing Icon
@@ -90,6 +91,7 @@ namespace Ink_Canvas.Controls
{
InitializeComponent();
Loaded += ToolMenuButton_Loaded;
+ ButtonBorder.Background = Brushes.Transparent;
}
private void ToolMenuButton_Loaded(object sender, RoutedEventArgs e)
@@ -105,17 +107,36 @@ namespace Ink_Canvas.Controls
private void ButtonPanel_MouseDown(object sender, MouseButtonEventArgs e)
{
+ if (!IsEnabled) return;
+ if (_lastPressedButton != null && _lastPressedButton != this)
+ {
+ _lastPressedButton.ButtonBorder.Background = Brushes.Transparent;
+ }
+ _lastPressedButton = this;
+ ButtonBorder.Background = new SolidColorBrush(Color.FromArgb(80, 24, 24, 27));
ButtonMouseDown?.Invoke(this, e);
}
private void ButtonPanel_MouseLeave(object sender, MouseEventArgs e)
{
+ if (!IsEnabled) return;
+ if (_lastPressedButton == this)
+ {
+ ButtonBorder.Background = Brushes.Transparent;
+ _lastPressedButton = null;
+ }
ButtonMouseLeave?.Invoke(this, e);
}
private void ButtonPanel_MouseUp(object sender, MouseButtonEventArgs e)
{
+ if (!IsEnabled) return;
+ if (_lastPressedButton == this)
+ {
+ ButtonBorder.Background = Brushes.Transparent;
+ _lastPressedButton = null;
+ }
ButtonMouseUp?.Invoke(this, e);
}
}
-}
+}
\ No newline at end of file