InitializeComponent()のあとで
DataObject.AddCopyingHandler([Name], (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); });
どうやらDragAndDropはLeaveのあとテキストの移動を開始し、GotFocusの前に終わってしまうらしい。
(つまり検出できない)とりあえずこの機能は使わないので封印封印。
②読み込まれたばっかのUserControl中のテキストボックスにフォーカスを当てたい。
さいしょできなかったが、UserControlのLoadedイベントで当てたら簡単だった。
Keyboard.FocusじゃなくってTextBox.Focus()でいい。
③AutoCompleteBoxに②とおんなじことをしたい。というか入力状態にしたい
{name}.Focus();
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
if (elementWithFocus != null)
{
elementWithFocus.MoveFocus(request);
}
③はしばらく訳が分からない+情報が全くないがゆえに結構方法を見つけるのに時間がかかってしまった・・・orz
④UserControlをクリックしたときにキーボードフォーカスを取得したい
MouseDownEventでe.handeld=trueを書いておくとうまくいった。