我面对的问题非常烦人。尝试更改选项卡的选定索引时出现问题控制
我与2周的TabItems(主页,显示) 主页选项卡开始作为可见光和显示为隐藏
主页我有我处理MouseLeftButtonDown事件的图像一个TabControl。 该事件应该改变Show TabItem的可见性并将其设置为Selected。
在代码我有一个tabControl.SelectedIndex = 1; 它强制tabControl SelectionChangeEvent(我用它来改变Show和Home TabItems的前景 )。
我面对的问题是,而不是焦点传递给显示,它仍然在家中。 我对代码没有问题,因为在SelectionChange事件处理程序的最后一步,这是我的代码执行的最后一个函数,我在ui中看到的是正确的。
那么之后会被执行什么? 任何人都可以帮忙吗?
private void Main_clientImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
showMenu.Visibility = Visibility.Visible;
setTabSelected("showMenu");
}
public void setTabSelected(String name)
{
for (int i = 0; i tabControl.Items.Count ; i++)
{
TabItem item = tabControl.Items.GetItemAt(i) as TabItem;
if (item.Name.Equals(name))
{
selectedTab=i;
tabControl.SelectedIndex = i;
item.Foreground = new SolidColorBrush(Colors.Black);
}
else
{
item.Foreground = new SolidColorBrush(Colors.White);
}
}
}
private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
for (int i = 0; i tabControl.Items.Count; i++)
{
TabItem item = tabControl.Items.GetItemAt(i) as TabItem;
if (tabControl.SelectedIndex == i)
{
item.Foreground = new SolidColorBrush(Colors.Black);
}
else
{
item.Foreground = new SolidColorBrush(Colors.White);
}
}
}
//编辑:我通过把一个简单e.Handler =在MouseLeftButtonDown事件真正的解决了这个问题。 这件事有什么错?
您是否在更改SelectedIndex之前设置了可见性?我最好的猜测是当SelectedIndex被更改时可见性被设置为隐藏,并且您不能将焦点设置为不可见项目。 – Rachel 2011-04-19 16:22:09
你能发表一些代码吗?我们不知道“(我用它来改变Show和Home TabItems的前景)。”是。您是否将您试图设置为选定选项卡的选项卡的可见性设置为? – 2011-04-19 16:23:47
我在我的post.Thnx上发布了代码以获取帮助。如您所见,我在更改selectedIndex之前设置了选项卡的可见性。 – Fotis 2011-04-19 16:39:45