我面對的問題非常煩人。嘗試更改選項卡的選定索引時出現問題控制
我與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