J'ai un TabControl
avec deux TabItem
s et un ListBox
commun aux deux onglets. Ce ListBox
doit être aligné dans le contenu spécifique de l'onglet. Par conséquent, je ne le place pas en dehors des onglets. J'ai un autre ListBox
sur l'un des onglets. Lorsque je sélectionne un élément dans la seconde ListBox
, la première ListBox
SelectedItem
devient bleue, donc j'ai 2 ListBox
es showen comme le contrôle ciblé à la fois.L'élément sélectionné d'une zone de liste créée dynamiquement devient bleu lorsque la sélection d'une autre zone de liste est modifiée
Y a-t-il une solution de contournement pour ce bogue WPF? Voici une capture d'écran et le code:
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>