using System; using System.ComponentModel; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Forms; using System.Drawing; using SPC.Kiosk.Base; using SPC.Kiosk.Common; using System.Windows.Threading; using SPC.Kiosk.Popup.Model; using SPC.Kiosk.Popup.ViewModel; using System.Windows.Media.Animation; namespace SPC.Kiosk.Popup { /// /// HappyPointCertify.xaml에 대한 상호 작용 논리 /// public partial class NumPadPopup : Window { #region [ Members ] private int ScreenNo { get; set; } = 0; private VmNumPadPopup ViewModel { get; set; } private SupportLanguageType GetLanguageType { get; set; } private List GetGuideText { get; set; } private bool Formated { get; set; } private bool IsPassword { get; set; } private int MaxLength { get; set; } private int CheckLength { get; set; } #endregion Members #region [ Ctor ] /// /// Ctor /// public NumPadPopup(SupportLanguageType _languageType , List _guideText , bool _formated = false , bool _isPassword = true , int _maxLength = 4 , int _checkLength = 4) { GetLanguageType = _languageType; GetGuideText = _guideText; Formated = _formated; IsPassword = _isPassword; MaxLength = _maxLength; CheckLength = _checkLength; InitializeComponent(); this.ContentRendered += NumPadPopup_ContentRendered; this.Loaded += NumPadPopup_Loaded; this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; } #endregion Ctor #region [ Methods ] private void OpenWindow() { var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase , OpenCloseAnimationType.FullSizeUp , this.FrameBase.Height , 0.5 , 0.5); if (OpenAnimations != null) { OpenAnimations.Completed += OpenAnimations_Completed; OpenAnimations.Begin(); } } private void CloseWindow() { var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase , OpenCloseAnimationType.FullSizeDown , this.FrameBase.Width , 0.5 , 0.2); if (CloseAnimation != null) { CloseAnimation.Completed += CloseAnimation_Completed; CloseAnimation.Begin(); } } #endregion Methods #region [ Event Handlers ] private void OpenAnimations_Completed(object sender, EventArgs e) { } private void CloseAnimation_Completed(object sender, EventArgs e) { this.Loaded -= NumPadPopup_Loaded; this.ViewModel.Dispose(); this.Close(); } private void NumPadPopup_ContentRendered(object sender, EventArgs e) { this.FrameBase.Width = 540; this.FrameBase.Height = 800; OpenWindow(); } private void NumPadPopup_Loaded(object sender, RoutedEventArgs e) { if (this.DataContext is VmNumPadPopup viewModel) { this.ViewModel = viewModel; this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; this.ViewModel.ShowLanguageType = GetLanguageType; this.ViewModel.NumPadGuidText = GetGuideText; this.ViewModel.Formated = Formated; this.ViewModel.IsPassword = IsPassword; this.ViewModel.NumPadMaxLength = MaxLength; this.ViewModel.CheckLength = CheckLength; this.ViewModel.PopupWidth = this.FrameBase.Width; this.ViewModel.IsTimeoutPopup = false; } this.FrameBase.Width = 0; this.FrameBase.Height = 0; } private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case "CanWindowClose": if (this.ViewModel.CanWindowClose) { CloseWindow(); } break; } } #endregion Event Handlers } }