我有一個在Silverlight中構建的Windows Phone 7應用程序。此應用程序使用應用程序欄。如果已經購買了應用程序,我想隱藏應用程序欄中的其中一個按鈕。但是,我注意到ApplicationIconButton類不公開「可見性」屬性。同時,我沒有看到在運行時動態填充應用程序欄的方法。以編程方式在WP7 Silverlight應用程序中隱藏應用程序欄圖標?
任何人都可以提供一些見解嗎?這可能嗎?如果是這樣,怎麼樣?
謝謝!
我有一個在Silverlight中構建的Windows Phone 7應用程序。此應用程序使用應用程序欄。如果已經購買了應用程序,我想隱藏應用程序欄中的其中一個按鈕。但是,我注意到ApplicationIconButton類不公開「可見性」屬性。同時,我沒有看到在運行時動態填充應用程序欄的方法。以編程方式在WP7 Silverlight應用程序中隱藏應用程序欄圖標?
任何人都可以提供一些見解嗎?這可能嗎?如果是這樣,怎麼樣?
謝謝!
應用程序欄按鈕以基於索引的方式工作,而不像您期望的那樣基於對象。因此,只要您想對其執行特定操作(例如禁用),就需要指定一個按鈕索引。
例如:
ApplicationBarIconButton b = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
b.IsEnabled = false;
這是說,你可以創建新的ApplicationBarIconButton實例,並將它們傳遞給應用程序任務欄:
for (int i = 0; i < 2; i++)
{
ApplicationBarIconButton b = new ApplicationBarIconButton();
b.Text = i.ToString();
b.IconUri = new Uri("/Images/icon1.png", UriKind.Relative);
ApplicationBar.Buttons.Add(b);
}
當刪除按鈕,你可以簡單地使用RemoveAt移除,因爲你知道要刪除的按鈕的索引:
ApplicationBar.Buttons.RemoveAt(0);
我使用下面的方法來改變在我的代碼應用程序欄按鈕:
private void UpdateAppbarButton(int index, string uriString, string text, bool visibility, EventHandler handler)
{
ApplicationBarIconButton button1 = null;
if (ApplicationBar.Buttons.Count > index)
{
button1 = ApplicationBar.Buttons[index] as ApplicationBarIconButton;
}
if (button1 != null)
{
{
ApplicationBar.Buttons.Remove(button1);
}
}
if (visibility == true)
{
button1 = new ApplicationBarIconButton(new Uri(uriString, UriKind.Relative));
button1.Text = text;
button1.Click += handler;
ApplicationBar.Buttons.Insert(index, button1);
}
}
的uriString中是,我希望顯示上的應用程序按鈕的圖標的相對路徑。您可能可以根據自己的情況調整此代碼。
本質上,不是設置按鈕是否可見,您必須刪除按鈕(如果有的話)或重新添加它,如果它不是。
我需要給IconUri for Appl icationBarIconButton作爲http url。這可能嗎?我收到以下例外。 「路徑不能是絕對的」。 – Sujiz 2012-12-23 18:08:36
嗨Sujiz,您是否將UriKind參數設置爲絕對?雖然我實際上並不知道HTTP地址是否可以工作,但值得一試。 – 2012-12-27 14:13:37
我已將UriKind設置爲絕對,但它不適用於me.is有任何其他解決方案來從http url加載應用程序欄圖標? – Sujiz 2012-12-28 04:15:41