static void TextBoxGotFocus(object sender, RoutedEventArgs e)
        {
            var txtBox = sender as TextBox;
            if (txtBox == null)
                return;

            VirtualKeyboardControl vkc = new VirtualKeyboardControl();
            vkc.Width = 500;
            vkc.Height = 200;
            Popup p = new Popup();

            StackPanel s = new StackPanel();
            s.Background = Brushes.Azure;
            s.Children.Add(vkc);
            p.Child = s;
            p.AllowsTransparency = true;
            p.PlacementTarget = txtBox;
            p.Placement = PlacementMode.Bottom;
            p.IsOpen = true;
        }
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            if (_virtualKeyboardPopup != null)
                _virtualKeyboardPopup.Opened -= OnVirtualKeyboardPopupOpened;

            _virtualKeyboardPopup = GetTemplateChild(PART_KeyboardPopup) as Popup;

            if (_virtualKeyboardPopup != null)
                _virtualKeyboardPopup.Opened += OnVirtualKeyboardPopupOpened;

            if (_virtualKeyboardControl != null)
                _virtualKeyboardControl.VirtualKeyPressed -= OnVirtualKeyPressed;

            _virtualKeyboardControl = GetTemplateChild(PART_Keyboard) as VirtualKeyboardControl;

            if (_virtualKeyboardControl != null)
                _virtualKeyboardControl.VirtualKeyPressed += OnVirtualKeyPressed;
        }