diff --git a/src/Ursa/Controls/Dialog/Dialog.cs b/src/Ursa/Controls/Dialog/Dialog.cs
index 993ea7d..aa459d8 100644
--- a/src/Ursa/Controls/Dialog/Dialog.cs
+++ b/src/Ursa/Controls/Dialog/Dialog.cs
@@ -217,10 +217,7 @@ public static class Dialog
///
private static void ConfigureDefaultDialogWindow(DefaultDialogWindow window, DialogOptions? options)
{
- if (options is null)
- {
- options = new DialogOptions();
- }
+ options ??= DialogOptions.Default;
window.WindowStartupLocation = options.StartupLocation;
window.Title = options.Title;
window.Buttons = options.Button;
diff --git a/src/Ursa/Controls/Dialog/DialogControl.cs b/src/Ursa/Controls/Dialog/DialogControl.cs
index 386d58f..c281811 100644
--- a/src/Ursa/Controls/Dialog/DialogControl.cs
+++ b/src/Ursa/Controls/Dialog/DialogControl.cs
@@ -21,9 +21,9 @@ public class DialogControl: ContentControl
protected internal Button? _closeButton;
private Panel? _titleArea;
-
- internal HorizontalPosition HorizontalAnchor { get; set; }
- internal VerticalPosition VerticalAnchor { get; set; }
+
+ internal HorizontalPosition HorizontalAnchor { get; set; } = HorizontalPosition.Center;
+ internal VerticalPosition VerticalAnchor { get; set; } = VerticalPosition.Center;
internal HorizontalPosition ActualHorizontalAnchor { get; set; }
internal VerticalPosition ActualVerticalAnchor { get; set; }
internal double? HorizontalOffset { get; set; }
diff --git a/src/Ursa/Controls/Dialog/Options/DialogOptions.cs b/src/Ursa/Controls/Dialog/Options/DialogOptions.cs
index 6c65ff5..f7c3408 100644
--- a/src/Ursa/Controls/Dialog/Options/DialogOptions.cs
+++ b/src/Ursa/Controls/Dialog/Options/DialogOptions.cs
@@ -5,7 +5,7 @@ namespace Ursa.Controls;
public class DialogOptions
{
- public static DialogOptions Default { get; } = new DialogOptions();
+ internal static DialogOptions Default { get; } = new DialogOptions();
///
/// The Startup Location of DialogWindow. Default is
///
diff --git a/src/Ursa/Controls/Dialog/Options/OverlayDialogOptions.cs b/src/Ursa/Controls/Dialog/Options/OverlayDialogOptions.cs
index f5e6139..559441c 100644
--- a/src/Ursa/Controls/Dialog/Options/OverlayDialogOptions.cs
+++ b/src/Ursa/Controls/Dialog/Options/OverlayDialogOptions.cs
@@ -16,6 +16,7 @@ public enum VerticalPosition
public class OverlayDialogOptions
{
+ internal static OverlayDialogOptions Default { get; } = new OverlayDialogOptions();
public bool CanClickOnMaskToClose { get; set; } = false;
public HorizontalPosition HorizontalAnchor { get; set; } = HorizontalPosition.Center;
public VerticalPosition VerticalAnchor { get; set; } = VerticalPosition.Center;
diff --git a/src/Ursa/Controls/Dialog/OverlayDialog.cs b/src/Ursa/Controls/Dialog/OverlayDialog.cs
index eda3d25..ce1f077 100644
--- a/src/Ursa/Controls/Dialog/OverlayDialog.cs
+++ b/src/Ursa/Controls/Dialog/OverlayDialog.cs
@@ -180,7 +180,7 @@ public static class OverlayDialog
private static void ConfigureDialogControl(DialogControl control, OverlayDialogOptions? options)
{
- if (options is null) options = new OverlayDialogOptions();
+ options ??= OverlayDialogOptions.Default;
control.HorizontalAnchor = options.HorizontalAnchor;
control.VerticalAnchor = options.VerticalAnchor;
control.ActualHorizontalAnchor = options.HorizontalAnchor;
diff --git a/src/Ursa/Controls/MessageBox/MessageBoxControl.cs b/src/Ursa/Controls/MessageBox/MessageBoxControl.cs
index 88fca1e..a7a4ed6 100644
--- a/src/Ursa/Controls/MessageBox/MessageBoxControl.cs
+++ b/src/Ursa/Controls/MessageBox/MessageBoxControl.cs
@@ -132,4 +132,17 @@ public class MessageBoxControl: DialogControl
{
if (button is not null) button.IsVisible = visible;
}
+
+ internal override void CloseDialog()
+ {
+ MessageBoxResult result = Buttons switch
+ {
+ MessageBoxButton.OK => MessageBoxResult.OK,
+ MessageBoxButton.OKCancel => MessageBoxResult.Cancel,
+ MessageBoxButton.YesNo => MessageBoxResult.No,
+ MessageBoxButton.YesNoCancel => MessageBoxResult.Cancel,
+ _ => MessageBoxResult.None
+ };
+ OnDialogControlClosing(this, result);
+ }
}
\ No newline at end of file