2013-07-24 41 views
3

我想在演示文稿更改序列期間給予特定的控制鍵盤焦點。說一個控件處於隱藏的可見性狀態。在函數調用中,我可以將其可見性更改爲可見,將鍵盤焦點設置爲沒有問題。但是,如果控件設置爲摺疊可見性,並嘗試將可見性設置爲可見,然後將焦點設置爲可見,則不需要。WPF,給鍵盤焦點控制以前崩潰

是否有我可以使用的過程來允許控件從摺疊狀態移動到可見狀態並獲取鍵盤焦點?

回答

2

這可能是一個計時問題,您設置爲可見的控件尚未準備好接受焦點。處理動態UI更改時,這可能會發生得相當頻繁。

您應該仍然可以集中控制,但您需要將焦點操作排隊,直到控件正確初始化。只需使用如下所示的BeginInvoke調用即可。

Dispatcher.BeginInvoke(() => 
{ 
    //Set focus here 
}); 
1

它不是已經初始化控制的問題。這又是一個過渡視覺狀態的問題。

只是爲了在此閉環,問題可以通過調用control.UpdateLayout()