我有一个包含ApplicationBar的小型C#项目。但我有一个小问题:我想在栏上有8个图标,而ApplicationBar只支持4.我想出了一个解决方案(在C#中):添加一个小的CheckBox来询问用户是否想要使用第一个或第二个集合工具。
但我仍然无法更改ApplicationBar上的图标。我尝试删除旧版本,首先使用ApplicationBar.MenuItems.Remove(Button1);
,然后使用ApplicationBar.Buttons.Remove(Button1);
,但都没有效果。我尝试更改按钮的.IconUri
属性,但这给了我一个NullReferenceException。
答案 0 :(得分:4)
我不明白你的意思是从“C#,而不是Silverlight”改变它。 C#是一种编程语言,Silverlight是一个框架。然而,您发布的链接确切地解释了您是如何做到的。 ApplicationBar不是Silverlight控件,它是本机操作系统的一部分。您可以使用链接中的代码或执行以下操作:
firstAppBarButton = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
firstAppBarButton.Text = "New Text";
firstAppBarButton.IconUri = new Uri("/appbarIcon.png",UriKind.Relative);
您需要通过索引获取ApplicationBarIconButton
(第一个为0,第二个为1等)而不是名称。
答案 1 :(得分:2)
您无法按名称引用应用程序按钮。尝试:
((ApplicationBarIconButton)ApplicationBar.Buttons[0]).Remove
我还建议您不要向用户提供两组4个图标。限制是4是有原因的。除此之外,还需要重新思考UI。也许将功能分成几页?
答案 2 :(得分:1)
上面的语法给了我一个编译错误。通过一些额外的研究,我得到了这个为我工作:
ApplicationBar.Buttons.Remove((ApplicationBarIconButton) ApplicationBar.Buttons[0]);