feat: re-organize file, add IsCloseButtonVisible option.

This commit is contained in:
rabbitism
2024-02-03 20:07:39 +08:00
parent 96ca0d9075
commit 39457f9724
9 changed files with 87 additions and 34 deletions

View File

@@ -83,6 +83,8 @@ public class DefaultDialogWindow: DialogWindow
private void SetButtonVisibility()
{
bool closeButtonVisible = DataContext is IDialogContext || Buttons != DialogButton.YesNo;
SetVisibility(_closeButton, closeButtonVisible);
switch (Buttons)
{
case DialogButton.None:
@@ -122,4 +124,25 @@ public class DefaultDialogWindow: DialogWindow
{
if (button is not null) button.IsVisible = visible;
}
protected internal override void OnCloseButtonClicked(object sender, RoutedEventArgs args)
{
if (DataContext is IDialogContext context)
{
context.Close();
}
else
{
DialogResult result = Buttons switch
{
DialogButton.None => DialogResult.None,
DialogButton.OK => DialogResult.OK,
DialogButton.OKCancel => DialogResult.Cancel,
DialogButton.YesNo => DialogResult.No,
DialogButton.YesNoCancel => DialogResult.Cancel,
_ => DialogResult.None
};
Close(result);
}
}
}