Windows phone 7 WP7应用程序Baricon可见性
请注意,WP7 ApplicationBarIcon本身不是标准控件 我需要能够以编程方式隐藏此内容(我需要隐藏而不是禁用) 1/除了添加/删除图标,我还有其他方法可以做到这一点吗 2/假设我必须添加和删除它,我如何将事件关联到我正在添加的控件Windows phone 7 WP7应用程序Baricon可见性,windows-phone-7,icons,visibility,Windows Phone 7,Icons,Visibility,请注意,WP7 ApplicationBarIcon本身不是标准控件 我需要能够以编程方式隐藏此内容(我需要隐藏而不是禁用) 1/除了添加/删除图标,我还有其他方法可以做到这一点吗 2/假设我必须添加和删除它,我如何将事件关联到我正在添加的控件 谢谢 1)ApplicationBarIcons不支持某种可见性属性。你唯一能做的就是删除并添加它们。另一个解决方案是禁用它们,因为这会导致更一致的UI。在显示4个图标并删除其中2个的情况下,图标已重新对齐,图标现在位于其他按钮所在的位置。这可能会让用
- 谢谢
- 1)ApplicationBarIcons不支持某种可见性属性。你唯一能做的就是删除并添加它们。另一个解决方案是禁用它们,因为这会导致更一致的UI。在显示4个图标并删除其中2个的情况下,图标已重新对齐,图标现在位于其他按钮所在的位置。这可能会让用户感到困惑,因为他习惯于单击右侧的第二个按钮,该按钮现在执行不同的操作
2) 当我不得不处理这个问题时,我创建了一个管理类,其中包含了我需要的所有图标。删除图标时,我只是将其从应用程序栏中删除,但将其保留在我的类中。稍后,我可以使用与以前完全相同的实例将图标添加回ApplicationBar,并将所有现有事件附加到该图标上
与良好的总体框架相比,WindowsPhone7上的ApplicationBar是一个让我失望的东西
希望这有助于…以下显示:在代码中创建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;
}
}
}
}
this.ApplicationBar=new ApplicationBar();
var newButton=newapplicationbariconbutton();
newButton.IconUri=newURI(“/images/remove.png”,UriKind.Relative);
newButton.Text=“删除”;
newButton.Click+=RemoveAppBarButton;
这个.ApplicationBar.Buttons.Add(newButton);
void RemoveAppBarButton(对象发送方,事件参数e)
{
对于(var i=0;i
需要注意的重要一点是,不能按名称引用按钮(或菜单项)。我猜wp7附带的电子邮件应用程序就是这样工作的?我想知道当点击“多选”按钮时他们是如何更改应用程序栏的。很抱歉再次继续。。。如果我想,我可以用xaml定义ApplicationBar,然后在特殊情况下添加一个新按钮(如果需要的话)?@Luke电子邮件应用程序不是用Silverlight编写的,但可能也有类似的功能。是的,您可以在XAML中定义它并在代码中引用它,但不能通过名称引用appbar的内容。