2012-01-23 3 views
1

Я только что сделал следующие шаги в этой статье MSDN по созданию WPF UI AddIn: http://msdn.microsoft.com/en-us/library/bb909849%28v=vs.90%29.aspxСтранная ошибка с WPF TabPage и Addin

код работает, при нажатии кнопки делает всплывающее окно, ectect. Я поместил UserControl надстройка в закладке элемента, в качестве содержимого элемента вкладки:

TabItem tab = new TabItem(); 
tab.Name = info.AssemblyName.Name; 
tab.Header = info.Name; 
tab.Content = plug.GetAddInUI(); 
TabHost.Items.Add(tab); //Add the page to the TabControl 

Это работало отлично, как и ожидалось. Однако, когда вы нажимаете кнопку, происходит интересная вещь. Появится сообщение, но затем элемент управления «замораживается». Я не могу переключиться на другие вкладки. Кнопка по-прежнему запускает окно сообщений, и я могу перемещать все окно, поэтому программа не висит.

Я могу «заставить» элемент управления вкладкой исправить себя, введя режим разрыва через VS, затем возобновить программу или минимизировать/восстановить окно и т. Д.

Я прочитал сообщения о блокировке событий MessageBox, поэтому я изменил Messagebox на Debug.Writeline. Ошибка все еще сохраняется.

Мой код следует за MSDN почти до буквы, однако, поскольку это довольно долго, я бы воздержался от публикации всего этого здесь. В то же время я не уверен, какие сегменты актуальны. Если вы скажете мне, какие части к сообщению, я "буду делать так

ответ

0

мне удалось решить путем вызова TabControl.Focus(), когда выбор изменяется, например, так:.

private void TabHost_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    TabHost.Focus(); 
} 

Я считаю, что это ошибка в WPF, и не все, что я сделал.

Смежные вопросы