1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-10-16 14:10:45 +00:00
msfs-popout-panel-manager/MainApp/AppWindow/NumPad.xaml.cs
2024-02-27 21:44:21 -05:00

57 lines
1.8 KiB
C#

using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Interop;
using Microsoft.Extensions.DependencyInjection;
using MSFSPopoutPanelManager.MainApp.ViewModel;
namespace MSFSPopoutPanelManager.MainApp.AppWindow
{
public partial class NumPad
{
private readonly NumPadViewModel _viewModel;
public NumPad(Guid panelId)
{
InitializeComponent();
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
return;
_viewModel = App.AppHost.Services.GetRequiredService<NumPadViewModel>();
_viewModel.PanelId = panelId;
Loaded += (_, _) =>
{
DataContext = _viewModel;
var window = Window.GetWindow(this);
if (window == null)
throw new ApplicationException("Unable to instantiate NumPad window");
_viewModel.PanelConfig.PanelHandle = new WindowInteropHelper(window).Handle;
_viewModel.PanelConfig.Width = Convert.ToInt32(Width);
_viewModel.PanelConfig.Height = Convert.ToInt32(Height);
};
this.MouseLeftButtonDown += NumPad_MouseLeftButtonDown;
this.Topmost = true;
}
private void NumPad_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (e.Source is Button btn)
_viewModel.ButtonCommand.Execute(btn.Name.Substring(3));
}
private void BtnClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}