WP7 ApplicationBarIcon可见性

时间:2011-07-15 05:01:52

标签: windows-phone-7 icons visibility

感谢WP7 ApplicationBarIcon不是标准控件。

我需要能够以编程方式隐藏它(我需要隐藏而不是禁用)

1 /除了添加/删除图标

之外还有其他方法可以做到这一点

2 /假设我必须添加和删除它,如何将事件与我添加的控件相关联?

  • 谢谢

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上的一件事,令我失望的是比较好的整体框架。

希望这会有所帮助......