私はTabControl
2つTabItem
のsとListBox
両方のタブに共通のaを持っています。これListBox
は、タブ固有のコンテンツ内に配置する必要があります。したがって、タブの外側には配置しません。ListBox
タブの1つにもう1つあります。2番目の項目を選択するListBox
と、最初ListBox
の項目SelectedItem
が青色になるためListBox
、フォーカスされたコントロールとして一度に2つのesが表示されます。
このWPFバグの回避策はありますか?スクリーンショットとコードは次のとおりです。
代替テキストhttp://img85.imageshack.us/img85/871/2focusedcontrols.png
using System.Windows;
using System.Windows.Controls;
namespace WpfApplication3
{
partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
void TabControl_SelectionChanged(
object sender, SelectionChangedEventArgs e)
{
var parent = listBox.Parent as Panel;
parent.Children.Remove(listBox);
var panel = tabControl.SelectedIndex == 0 ? panel1 : panel2;
panel.Children.Add(listBox);
}
}
}
<Window x:Class="WpfApplication3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<TabControl Name="tabControl"
SelectionChanged="TabControl_SelectionChanged">
<TabItem Header="tab1">
<StackPanel Name="panel1">
<ListBox>
<ListBoxItem>click me second</ListBoxItem>
<ListBoxItem>item</ListBoxItem>
</ListBox>
<ListBox Name="listBox">
<ListBoxItem>click me first</ListBoxItem>
<ListBoxItem>item</ListBoxItem>
</ListBox>
</StackPanel>
</TabItem>
<TabItem Header="tab2">
<StackPanel Name="panel2"/>
</TabItem>
</TabControl>
</Window>