private static void ExecuteTextBoxClickCommand(object sender, ExecutedRoutedEventArgs e)
        {
            if (Manager.ConfigManager.Instance.Config.UseVirtualKeyboard == false) return;

            if ((e.OriginalSource is TextBox) == false) return;
            if (e.OriginalSource == null) return;

            var textBox = e.OriginalSource as TextBox;
            var textBoxPosition = textBox.PointToScreen(new Point(textBox.ActualWidth / 2, textBox.ActualHeight / 2));
            var topControl = GetTopLevelControl(textBox);
            
            if (textBox.Tag is Utility.FANumberRangeRule)
            {
                 textBox.PointToScreen(ZeroPoint);

                var range = textBox.Tag as Utility.FANumberRangeRule;
                Forms.NumericKeyboardWindow keyboard = new Forms.NumericKeyboardWindow();
                keyboard.Min = range.Range.Min;
                keyboard.Max = range.Range.Max;
                keyboard.NumType = range.NumberType;
                //keyboard.Left = textBoxPosition.X;
                //keyboard.Top = textBoxPosition.Y;
                keyboard.InputValueString = textBox.Text;

                if (topControl is Window)
                    keyboard.Owner = (Window)topControl;

                if (keyboard.ShowDialog() == true)
                {
                    textBox.Text = keyboard.Value.ToString();
                }
            }
            else
            {
                var keyboard = new Forms.KeyboardWindow();

                //keyboard.Left = textBoxPosition.X;
                //keyboard.Top = textBoxPosition.Y;
                keyboard.InputString = textBox.Text;

                if (topControl is Window)
                    keyboard.Owner = (Window)topControl;

                if (keyboard.ShowDialog() == true)
                {
                    textBox.Text = keyboard.InputString;
                }
            }
        }
        private static void ExecutePasswordBoxClickCommand(object sender, ExecutedRoutedEventArgs e)
        {
            if (Manager.ConfigManager.Instance.Config.UseVirtualKeyboard == false) return;

            if ((e.OriginalSource is PasswordBox) == false) return;
            if (e.OriginalSource == null) return;

            var textBox = e.OriginalSource as PasswordBox;
            var textBoxPosition = textBox.PointToScreen(new Point(textBox.ActualWidth / 2, textBox.ActualHeight / 2));
            var topControl = GetTopLevelControl(textBox);
            
            var keyboard = new Forms.KeyboardWindow();

            //keyboard.Left = textBoxPosition.X;
            //keyboard.Top = textBoxPosition.Y;
            keyboard.PasswordMode = true;

            if (topControl is Window)
                keyboard.Owner = (Window)topControl;

            if (keyboard.ShowDialog() == true)
            {
                textBox.Password = keyboard.InputString;
            }            
        }