【问题标题】:Change applicationbar buttonicon at runtime在运行时更改应用程序栏按钮图标
【发布时间】:2010-09-15 15:01:22
【问题描述】:

我正在开发一个 WP7 应用程序,该应用程序需要根据请求状态更改应用程序栏上按钮的图标。 我试过了:

if (App.Servers[index].ServerState == "Enabled")
{
  DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.stop.rest.png");
}

else
{
  DetailsAppBar.btnStart.IconUri = new Uri("/AppBar/appbar.transport.play.rest.png");
}

这不会给我代码错误,但它无法编译.... 对此的任何提示表示赞赏:)

谢谢

【问题讨论】:

    标签: silverlight-4.0 windows-phone-7


    【解决方案1】:

    ApplicationBar 是一种特殊控件,其行为方式与其他 Silverlight 控件不同(请参阅Peter Torr's post on the subject)。后果之一是在 XAML 中为应用栏按钮提供的名称会在代码隐藏中生成始终为空的字段。

    我猜在您的情况下,DetailsAppBar 中的 btnStart 字段设置为 null,因此尝试设置其 IconUri 属性会导致抛出 NullReferenceException。

    要访问应用程序栏中的按钮,您必须改为通过按钮列表中从零开始的索引来引用它。例如,下面的代码返回对应用栏中第三个按钮的引用:

    button = (IApplicationBarIconButton)ApplicationBar.Buttons[2];
    

    【讨论】:

      【解决方案2】:

      想通了……

      ((ApplicationBarIconButton)ApplicationBar.Buttons[2]).IconUri = new Uri("/AppBar/appbar.stop.rest.png",UriKind.Relative);
      

      成功了 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-07
        • 1970-01-01
        相关资源
        最近更新 更多