0
탭 당 TextBox가 포함 된 TabControl이 있습니다. 프로그래밍 방식으로 탭을 선택한 다음 TextBox 선택을 설정하고 TextBox에 포커스를 설정해야합니다.WPF는 여러 속성을 하나씩 차례로 변경합니다.
내 문제는 코드에서 새 탭을 선택한 다음 텍스트 상자에 포커스를 설정하면 작동하지 않는다는 것입니다.
원하는 탭이 이미 선택된 탭이고 포커스를 탭 안의 텍스트 상자로 설정하면 작동합니다.
WPF 요소에서 여러 동작을 수행해도 작동하지 않는 것 같습니다.
먼저 tabcontrol의 탭을 전환 한 다음 새로 선택한 TabItem의 자식으로 포커스를 설정하는 올바른 방법은 무엇입니까?
편집 : 완료 렌더 스레드 대기 : 나는 인터넷에서 뭔가를 발견했습니다
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => { })).Wait();
을하지만이 올바른 방법인가?
은 BTW :
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