当我尝试进行任何更改时,ApplicationBarIconButton抛出AccessViolationException

时间:2013-04-05 03:04:37

标签: xaml windows-phone-8

我的xaml页面上有一组applicationbariconbuttons,它在xaml上看起来像这样:

<shell:ApplicationBarIconButton x:Name="button1" IconUri="/Images/YourImage.png" Text="Button 1"/>
xaml.cs中的

button1.IconUri = new Uri("/Images/YourImage2.png", UriKind.Relative);

当我添加执行iconuri甚至文本的更改时,它会抛出AccessViolationException

我想知道整个网络发生了什么,这就是你做这么简单/直接改变的方式。并且图像文件已经更改为“内容”,构建操作为“不要复制”,我尝试了各种组合,但它仍然会抛出错误。我甚至重新创建了整个解决方案。

但是我遇到了一个问题,即当我进行任何更改时xaml不会更新,我在设备上更新应用程序的唯一方法是删除并重新安装。

另一件奇怪的事情是,当我运行代码分析时,我得到了这个:

CA0001 Error Running Code Analysis
CA0001 : The following error was encountered while reading module 'XXX': Could not resolve member reference: 
[Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a]System.Threading.Tasks.TaskEx::Delay.
[Errors and Warnings] (Global)

1 个答案:

答案 0 :(得分:0)

您无法通过名称访问应用栏按钮。

这样的事情应该有效

  // Get the current application bar
  ApplicationBar thebar = this.ApplicationBar as ApplicationBar;

  // You need to know the index of the button in the collection and grab it
  ApplicationBarIconButton thebutton = thebar.Buttons[0] as ApplicationBarIconButton;

   //change the icon image
  thebutton.IconUri = new Uri("/Images/YourImage2.png", UriKind.Relative);