diff --git a/src/MaterialDesignThemes.Wpf/Converters/EllipseClipConverter.cs b/src/MaterialDesignThemes.Wpf/Converters/EllipseClipConverter.cs
new file mode 100644
index 0000000000..d5dbb3b3f0
--- /dev/null
+++ b/src/MaterialDesignThemes.Wpf/Converters/EllipseClipConverter.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace MaterialDesignThemes.Wpf.Converters;
+
+public class EllipseClipConverter : IMultiValueConverter
+{
+ public static readonly EllipseClipConverter Instance = new();
+
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values is [double width, double height, ..])
+ {
+ if (width < 1.0 || height < 1.0)
+ {
+ return Geometry.Empty;
+ }
+
+ Point center = new Point(width / 2.0, height / 2.0);
+ double radiusX = width / 2.0;
+ double radiusY = height / 2.0;
+
+ EllipseGeometry geometry = new EllipseGeometry(center, radiusX, radiusY);
+ geometry.Freeze();
+
+ return geometry;
+ }
+
+ return DependencyProperty.UnsetValue;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ => throw new NotImplementedException();
+}
diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml
index a683767fc3..52e85b15ca 100644
--- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml
+++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ToggleButton.xaml
@@ -136,20 +136,10 @@
ContentTemplate="{TemplateBinding ContentTemplate}"
FlowDirection="LeftToRight" />
-
-
-
-
-
-
-
-
+
+
+
+
@@ -164,20 +154,10 @@
ContentTemplate="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ToggleButtonAssist.OnContentTemplate)}"
FlowDirection="LeftToRight" />
-
-
-
-
-
-
-
-
+
+
+
+