如何从C#更改ApplicationBar上的图像?

时间:2011-05-30 22:47:59

标签: c# visual-studio visual-studio-2010 windows-phone-7 icons

我有一个包含ApplicationBar的小型C#项目。但我有一个小问题:我想在栏上有8个图标,而ApplicationBar只支持4.我想出了一个解决方案(在C#中):添加一个小的CheckBox来询问用户是否想要使用第一个或第二个集合工具。

但我仍然无法更改ApplicationBar上的图标。我尝试删除旧版本,首先使用ApplicationBar.MenuItems.Remove(Button1);,然后使用ApplicationBar.Buttons.Remove(Button1); ,但都没有效果。我尝试更改按钮的.IconUri属性,但这给了我一个NullReferenceException。

3 个答案:

答案 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]);