0
我有一個TabControl
,其中兩個TabItem
和ListBox
這兩個選項卡是通用的。此ListBox
需要在選項卡特定內容內對齊。因此我不把它放在標籤外面。我在另一個選項卡上有另一個ListBox
。當我在第二個ListBox
中選擇一個項目時,第一個ListBox
的SelectedItem
變爲藍色,所以我有一次顯示爲聚焦控制。當另一個列表框的選擇發生變化時,動態創建的列表框的選定項目變爲藍色
是否有解決此WPF錯誤的方法?下面是截圖和代碼:
alt text 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>