using MECF.Framework.UI.Client.CenterViews.Dialogs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using TextBox2 = OpenSEMI.Ctrlib.Controls.TextBoxEx; namespace MECF.Framework.UI.Client.Themes.lightgreen { public partial class TextBoxEx3 : ResourceDictionary { public void OnClick(object sender, MouseButtonEventArgs e) { if (sender is TextBox2) { TextBox2 textBox = sender as TextBox2; string strRet = Show(sender, textBox.Text); if (string.IsNullOrEmpty(strRet)) return; textBox.Text = strRet; } else if (sender is PasswordBox) { PasswordBox passwordBox = sender as PasswordBox; string strRet = Show(sender, passwordBox.Password); if (string.IsNullOrEmpty(strRet)) return; passwordBox.Password = strRet; } } private string Show(object sender, string strDefaultValue) { TextBox2 control = sender as TextBox2; string strRet = string.Empty; //if (control.Tag != null && control.Tag.ToString().Equals("Number")) //{ // var point = control.PointFromScreen(new Point(0, 0)); // double x = SystemParameters.WorkArea.Width; // double y = SystemParameters.WorkArea.Height; // NumberKeyborardNoMinus numberKeyboard = new NumberKeyborardNoMinus("", strDefaultValue,true,control.MaxValue,control.MinValue); // if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < y) // { // numberKeyboard.Top = -point.Y + control.ActualHeight + 5; // } // else // { // numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5; // } // if (-point.X + numberKeyboard.Width < x) // { // numberKeyboard.Left = -point.X; // } // else // { // numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth); // } // if ((bool)numberKeyboard.ShowDialog()) strRet = numberKeyboard.ValueString; //} if (control.Tag != null && control.Tag.ToString().Contains("Number")) { NumberKeyboard numberKeyboard = new NumberKeyboard("", strDefaultValue); var point = control.PointFromScreen(new Point(0, 0)); double x = SystemParameters.WorkArea.Width; double y = SystemParameters.WorkArea.Height; if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < y) { numberKeyboard.Top = -point.Y + control.ActualHeight + 5; } else { numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5; } if (-point.X + numberKeyboard.Width < x) { numberKeyboard.Left = -point.X; } else { numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth); } if ((bool)numberKeyboard.ShowDialog()) strRet = numberKeyboard.ValueString; } else if (control.Tag != null && control.Tag.ToString().Contains("None")) { return string.Empty; } else { FullKeyboard fullKeyboard = new FullKeyboard("", strDefaultValue); var point = control.PointFromScreen(new Point(0, 0)); double x = SystemParameters.WorkArea.Width; double y = SystemParameters.WorkArea.Height; if (-point.Y + control.ActualHeight + 5 + fullKeyboard.Height < y) { fullKeyboard.Top = -point.Y + control.ActualHeight + 5; } else { fullKeyboard.Top = -point.Y - fullKeyboard.Height - 5; } if (-point.X + fullKeyboard.Width < x) { fullKeyboard.Left = -point.X; } else { fullKeyboard.Left = -point.X - (fullKeyboard.Width - control.ActualWidth); } if ((bool)fullKeyboard.ShowDialog()) strRet = fullKeyboard.ValueString; } return strRet; } } }