77 lines
2.2 KiB
C#
77 lines
2.2 KiB
C#
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
|
|
namespace WpfApp1
|
|
{
|
|
using System.Windows;
|
|
|
|
/// <summary>
|
|
/// Interaction logic for DialogFrame.xaml
|
|
/// </summary>
|
|
public partial class DialogFrame
|
|
{
|
|
private Point? _mousePointOnClick;
|
|
|
|
public DialogFrame(string title, string message)
|
|
{
|
|
InitializeComponent();
|
|
this.TitleBlock.Text = title;
|
|
this.MessageBlock.Text = message;
|
|
SetMouseStatus();
|
|
}
|
|
|
|
private void CloseDialog_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
DialogService.Instance.Remove(this);
|
|
}
|
|
|
|
private void NewDialog_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
DialogService.Instance.Add(
|
|
new DialogFrame("Child", $"Child dialog {DialogService.Instance.Dialogs.Count}")
|
|
);
|
|
}
|
|
|
|
private void Border_OnMouseDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
var thisPosition = e.GetPosition(this);
|
|
_mousePointOnClick = new Point(
|
|
thisPosition.X - BorderTransform.X,
|
|
thisPosition.Y - BorderTransform.Y
|
|
);
|
|
SetMouseStatus();
|
|
}
|
|
|
|
private void Border_OnMouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (e.LeftButton == MouseButtonState.Pressed && _mousePointOnClick is { } pointOnClick)
|
|
{
|
|
var pos = e.GetPosition(this);
|
|
BorderTransform.X = pos.X - pointOnClick.X;
|
|
BorderTransform.Y = pos.Y - pointOnClick.Y;
|
|
}
|
|
SetMouseStatus();
|
|
}
|
|
|
|
private void Border_OnMouseUp(object sender, MouseButtonEventArgs e)
|
|
{
|
|
_mousePointOnClick = null;
|
|
SetMouseStatus();
|
|
}
|
|
|
|
private void SetMouseStatus()
|
|
{
|
|
MouseStatus.Text =
|
|
$"""PointOnClick:"{(_mousePointOnClick?.ToString() ?? "<null>")}", BorderTransform:"{BorderTransform.X:F1}:{BorderTransform.Y:F1}" """;
|
|
}
|
|
|
|
private void DialogFrame_OnKeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.Key == Key.Escape)
|
|
{
|
|
DialogService.Instance.Remove(this);
|
|
}
|
|
}
|
|
}
|
|
}
|