2011-07-15 32 views
3

欣賞WP7 ApplicationBarIcon不是標準控件。WP7 ApplicationBarIcon可見性

我需要能夠以編程隱藏該(I需要隱藏,而不是禁用)

1 /是否有任何其他辦法可以比添加/刪除的圖標爲此其他

2 /假設我必須添加和刪除它,如何將事件關聯到我添加的控件?

  • 感謝

回答

4

下面顯示:在代碼中創建一個appbar;添加一個按鈕(包括「點擊」事件處理程序);並刪除特定的按鈕。

this.ApplicationBar = new ApplicationBar(); 

    var newButton = new ApplicationBarIconButton(); 
    newButton.IconUri = new Uri("/images/remove.png", UriKind.Relative); 
    newButton.Text = "remove"; 
    newButton.Click += RemoveAppBarButton; 

    this.ApplicationBar.Buttons.Add(newButton); 


void RemoveAppBarButton(object sender, EventArgs e) 
{ 
    for (var i = 0; i < this.ApplicationBar.Buttons.Count; i++) 
    { 
     var button = this.ApplicationBar.Buttons[i] as ApplicationBarIconButton; 

     if (button != null) 
     { 
      if (button.Text == "remove") 
      { 
       this.ApplicationBar.Buttons.RemoveAt(i); 
       break; 
      } 
     } 
    } 
} 

重要的是要注意的是,您不能通過名稱引用按鈕(或菜單項)。

+0

我猜這是wp7自帶的電子郵件應用程序的工作原理嗎?我想知道如何在單擊「多選」按鈕時更改ApplicationBar。 –

+0

再次抱歉...如果我想,我可以在xaml中定義ApplicationBar,然後在特殊情況下添加一個新按鈕(如果我需要的話)? –

+0

@Luke電子郵件應用程序不是用Silverlight編寫的,但可能會做類似的事情。是的,你可以在XAML中定義它,並在代碼中引用它,但是你不能通過名稱來引用appbar的內容。 –

1

1)ApplicationBarIcons不支持某種可視性財產。你唯一能做的就是刪除並添加它們。另一種解決方案是禁用它們,因爲這會產生更一致的用戶界面。在顯示4個圖標並刪除其中2個的情況下,圖標被重新對齊,圖標現在位於其他按鈕已經存在的位置。這可能會讓用戶感到困惑,因爲他習慣於單擊現在執行不同操作的右側的第二個按鈕。

2)當我不得不處理這個問題時,我創建了一個管理類,它包含我需要的所有圖標。當刪除一個圖標時,我只是將它從ApplicationBar中刪除,但保留在我的課程中。稍後,我可以使用與以前完全相同的實例將所有現有事件附加到ApplicationBar上,將圖標添加回到ApplicationBar。

ApplicationBar是Windows Phone 7上的一件事,令我失望的是我比較好的整體框架。

希望這有助於...