感谢WP7 ApplicationBarIcon不是标准控件。
我需要能够以编程方式隐藏它(我需要隐藏而不是禁用)
1 /除了添加/删除图标
之外还有其他方法可以做到这一点2 /假设我必须添加和删除它,如何将事件与我添加的控件相关联?
答案 0 :(得分: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;
}
}
}
}
需要注意的重要一点是,您无法按名称引用按钮(或菜单项)。
答案 1 :(得分:1)
1)ApplicationBarIcons不支持某种Visibility属性。您唯一能做的就是删除并添加它们。另一种解决方案是禁用它们,因为这会产生更一致的UI。如果您显示4个图标并删除其中的2个,则图标将重新排列,图标现在位于其他按钮所在的位置。这可能会使用户感到困惑,因为他习惯于单击右侧的第二个按钮,该按钮现在执行不同的操作。
2)当我不得不处理这个问题时,我创建了一个管理类,其中包含我需要的所有图标。删除图标时,我只是将其从ApplicationBar中删除,但将其保存在我的班级中。稍后我可以使用与之前完全相同的实例将图标添加回ApplicationBar,并附加所有现有事件。
ApplicationBar是Windows Phone 7上的一件事,令我失望的是比较好的整体框架。
希望这会有所帮助......