diff --git a/src/Ursa.Themes.Semi/Controls/Dialog.axaml b/src/Ursa.Themes.Semi/Controls/Dialog.axaml
index d096126..cebe482 100644
--- a/src/Ursa.Themes.Semi/Controls/Dialog.axaml
+++ b/src/Ursa.Themes.Semi/Controls/Dialog.axaml
@@ -233,6 +233,7 @@
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
Theme="{DynamicResource SolidButton}" />
+
diff --git a/src/Ursa.Themes.Semi/Controls/Resizer.axaml b/src/Ursa.Themes.Semi/Controls/Resizer.axaml
index 59e5ced..e349066 100644
--- a/src/Ursa.Themes.Semi/Controls/Resizer.axaml
+++ b/src/Ursa.Themes.Semi/Controls/Resizer.axaml
@@ -12,6 +12,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ursa/Controls/OverlayShared/OverlayFeedbackElement.cs b/src/Ursa/Controls/OverlayShared/OverlayFeedbackElement.cs
index 50cc65a..cb11324 100644
--- a/src/Ursa/Controls/OverlayShared/OverlayFeedbackElement.cs
+++ b/src/Ursa/Controls/OverlayShared/OverlayFeedbackElement.cs
@@ -1,90 +1,198 @@
using Avalonia;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Threading;
+using Avalonia.VisualTree;
using Irihi.Avalonia.Shared.Contracts;
+using Irihi.Avalonia.Shared.Helpers;
using Ursa.EventArgs;
namespace Ursa.Controls.OverlayShared;
-public abstract class OverlayFeedbackElement: ContentControl
+public abstract class OverlayFeedbackElement : ContentControl
{
public static readonly StyledProperty IsClosedProperty =
- AvaloniaProperty.Register(nameof(IsClosed), defaultValue: true);
+ AvaloniaProperty.Register(nameof(IsClosed), true);
+
+ public static readonly RoutedEvent ClosedEvent =
+ RoutedEvent.Register(
+ nameof(Closed), RoutingStrategies.Bubble);
+
+ private bool _resizeDragging;
+ private bool _moveDragging;
+
+ private Panel? _containerPanel;
+ private Rect _resizeDragStartBounds;
+ private Point _resizeDragStartPoint;
+
+ private WindowEdge? _windowEdge;
+
+ static OverlayFeedbackElement()
+ {
+ FocusableProperty.OverrideDefaultValue(false);
+ DataContextProperty.Changed.AddClassHandler((o, e) =>
+ o.OnDataContextChange(e));
+ ClosedEvent.AddClassHandler((o, e) => o.OnClosed(e));
+ }
public bool IsClosed
{
get => GetValue(IsClosedProperty);
set => SetValue(IsClosedProperty, value);
}
-
- static OverlayFeedbackElement()
- {
- FocusableProperty.OverrideDefaultValue(false);
- DataContextProperty.Changed.AddClassHandler((o, e) => o.OnDataContextChange(e));
- ClosedEvent.AddClassHandler((o,e)=>o.OnClosed(e));
- }
private void OnClosed(ResultEventArgs _)
{
- SetCurrentValue(IsClosedProperty,true);
+ SetCurrentValue(IsClosedProperty, true);
}
- public static readonly RoutedEvent ClosedEvent = RoutedEvent.Register(
- nameof(Closed), RoutingStrategies.Bubble);
-
public event EventHandler Closed
{
add => AddHandler(ClosedEvent, value);
remove => RemoveHandler(ClosedEvent, value);
}
-
+
private void OnDataContextChange(AvaloniaPropertyChangedEventArgs