0
タブごとにTextBoxを含むTabControlがあります。プログラムでタブを選択し、TextBoxの選択を設定し、TextBoxにフォーカスを設定する必要があります。WPFは複数のプロパティを1つずつ変更しています。
私の問題は、最初にコード内の新しいタブを選択し、テキストボックスにフォーカスを設定しても機能しないということです。
希望のタブが既に選択されたタブであり、タブ内のテキストボックスにフォーカスを設定している場合、それは機能しています。
WPF要素でいくつかのアクションを実行すると動作しないようです。
タブコントロールのタブを最初に切り替えて、新しく選択したTabItemの子にフォーカスを設定する正しい方法は何ですか?
編集:完了するために、レンダリングスレッドを待っている:私は、インターネット上で何か見つけた
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => { })).Wait();
をしかし、これは正しい方法ですか?
ところで:
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => { })).Wait();
Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, new Action(() => { }));
* * "WPF要素のいくつかのアクションを実行することはできません" - いつ、どのようあなたがそれを行うことが決まります。私たちを見せてもらえますか? – Sinatr
フォーカス変更がディスパッチャで後で発生するようにスケジュールする必要がある場合があります。タブの変更による実際のビジュアルツリーの変更は同期的ではなく、「ディスパッチされたスレッドが再びフリーになるたびに」発生することがあります。したがって、タブの変更後にフォーカスを設定しようとすると、テキストボックスはまだ表示されません。それだけでフォーカスを受け取ることはできません。 – Joey
あなたは[単独]ではないようです(http://stackoverflow.com/q/4553412/1997232)。それでも、[mcve](https://stackoverflow.com/help/mcve)を持っていると、誰かがこの問題を解決しようとするかもしれません。 – Sinatr