WPFメモ

アバター
GRAM
記事: 164
登録日時: 14年前
住所: 大阪

WPFメモ

投稿記事 by GRAM » 12年前

①テキストボックスのドラッグを禁止にしてしまいたい
InitializeComponent()のあとで

CODE:

DataObject.AddCopyingHandler([Name], (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); });
・・・テキストボックスのテキストの変更前と変更後をGotFocusとLeaveで検出してるのに
どうやらDragAndDropはLeaveのあとテキストの移動を開始し、GotFocusの前に終わってしまうらしい。
(つまり検出できない)とりあえずこの機能は使わないので封印封印。

②読み込まれたばっかのUserControl中のテキストボックスにフォーカスを当てたい。
さいしょできなかったが、UserControlのLoadedイベントで当てたら簡単だった。
Keyboard.FocusじゃなくってTextBox.Focus()でいい。

③AutoCompleteBoxに②とおんなじことをしたい。というか入力状態にしたい

CODE:

            {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を書いておくとうまくいった。
最後に編集したユーザー GRAM on 2013年3月14日(木) 01:38 [ 編集 1 回目 ]

コメントはまだありません。