我有一个TabControl
带有两个TabItem
s 和一个ListBox
两个选项卡共有的 a 。这ListBox
需要在选项卡特定内容内对齐。因此我不会将它放在选项卡之外。我ListBox
在其中一个标签上有另一个。当我在 second 中选择一个项目时ListBox
,第一个ListBox
变成SelectedItem
蓝色,所以我有 2 个ListBox
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>