diff --git a/demo/Ursa.Demo/Pages/ClockDemo.axaml b/demo/Ursa.Demo/Pages/ClockDemo.axaml
index c86f20e..4dcde2d 100644
--- a/demo/Ursa.Demo/Pages/ClockDemo.axaml
+++ b/demo/Ursa.Demo/Pages/ClockDemo.axaml
@@ -9,12 +9,6 @@
d:DesignWidth="800"
mc:Ignorable="d">
-
+
diff --git a/src/Ursa.Themes.Semi/Controls/Clock.axaml b/src/Ursa.Themes.Semi/Controls/Clock.axaml
new file mode 100644
index 0000000..a62b9f9
--- /dev/null
+++ b/src/Ursa.Themes.Semi/Controls/Clock.axaml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ursa.Themes.Semi/Controls/_index.axaml b/src/Ursa.Themes.Semi/Controls/_index.axaml
index d05cb2e..0e6694b 100644
--- a/src/Ursa.Themes.Semi/Controls/_index.axaml
+++ b/src/Ursa.Themes.Semi/Controls/_index.axaml
@@ -6,6 +6,7 @@
+
diff --git a/src/Ursa/Controls/Clock/Clock.cs b/src/Ursa/Controls/Clock/Clock.cs
index 4036044..92bb777 100644
--- a/src/Ursa/Controls/Clock/Clock.cs
+++ b/src/Ursa/Controls/Clock/Clock.cs
@@ -35,5 +35,38 @@ public class Clock: TemplatedControl
get => GetValue(ShowMinuteTicksProperty);
set => SetValue(ShowMinuteTicksProperty, value);
}
+
+ public static readonly StyledProperty HourHandMarginProperty = AvaloniaProperty.Register(
+ nameof(HourHandMargin));
+
+ public double HourHandMargin
+ {
+ get => GetValue(HourHandMarginProperty);
+ set => SetValue(HourHandMarginProperty, value);
+ }
+ public static readonly StyledProperty MinuteHandMarginProperty = AvaloniaProperty.Register(
+ nameof(MinuteHandMargin));
+
+ public double MinuteHandMargin
+ {
+ get => GetValue(MinuteHandMarginProperty);
+ set => SetValue(MinuteHandMarginProperty, value);
+ }
+
+ protected override Size MeasureOverride(Size availableSize)
+ {
+ double min = Math.Min(availableSize.Height, availableSize.Width);
+ var newSize = new Size(min, min);
+ var size = base.MeasureOverride(newSize);
+ return size;
+ }
+
+ protected override Size ArrangeOverride(Size finalSize)
+ {
+ double min = Math.Min(finalSize.Height, finalSize.Width);
+ var newSize = new Size(min, min);
+ var size = base.ArrangeOverride(newSize);
+ return size;
+ }
}
\ No newline at end of file
diff --git a/src/Ursa/Controls/Clock/ClockTicks.cs b/src/Ursa/Controls/Clock/ClockTicks.cs
index 62360a6..eab1455 100644
--- a/src/Ursa/Controls/Clock/ClockTicks.cs
+++ b/src/Ursa/Controls/Clock/ClockTicks.cs
@@ -86,6 +86,18 @@ public class ClockTicks: Control
AffectsRender(ShowHourTicksProperty);
}
+ protected override Size MeasureOverride(Size availableSize)
+ {
+ double minSize= Math.Min(availableSize.Width, availableSize.Height);
+ return new Size(minSize, minSize);
+ }
+
+ protected override Size ArrangeOverride(Size finalSize)
+ {
+ var minSize = Math.Min(finalSize.Width, finalSize.Height);
+ return new Size(minSize, minSize);
+ }
+
public override void Render(DrawingContext context)
{
base.Render(context);