【问题标题】:How to change the image on the ApplicationBar from C#?如何从 C# 更改 ApplicationBar 上的图像?
【发布时间】:2011-05-30 22:47:58
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我不明白您将其从“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 表示第二个等等)而不是名称。

    【讨论】:

    • 我相信 Silverlight(它是一个框架)和 XAML 之间存在混淆,XAML 是用于在 Silverlight 框架中定义页面的 XML 标记。此答案中提供的代码仍然在 Silverlight 框架中运行,但它是 C# 代码,而不是 XAML 标记。
    【解决方案2】:

    您不能按名称引用应用程序按钮。试试:

    ((ApplicationBarIconButton)ApplicationBar.Buttons[0]).Remove
    

    我还建议您不要向用户展示两组 4 个图标。限制为 4 是有原因的。除此之外,还需要重新考虑 UI。也许将功能分成几页?

    【讨论】:

      【解决方案3】:

      上面的语法给了我一个编译错误。通过一些额外的研究,我得到了这个为我工作:

      ApplicationBar.Buttons.Remove((ApplicationBarIconButton) ApplicationBar.Buttons[0]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 2017-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多