Xaml AppBarButton.Icon不';不要在运行时更改

Xaml AppBarButton.Icon不';不要在运行时更改,xaml,windows-runtime,windows-phone-8.1,win-universal-app,Xaml,Windows Runtime,Windows Phone 8.1,Win Universal App,根据某些条件,我在运行时更新AppBarButton图标时遇到问题 <AppBarButton x:Name="WeekButton" Click="OnClick" Label="SomeText" </AppBarButton> 但什么也没发生。按钮没变。但是,在代码工作的任何随机时间,它都可能更改按钮。我总是看到,图标在代码中是新的,但在屏幕上不是。UpdateLayout没有任何帮助。 非常感谢您的帮助。 谢谢 更新: 它似乎不适用于FontIcon,就像Bitma

根据某些条件,我在运行时更新AppBarButton图标时遇到问题

<AppBarButton x:Name="WeekButton" Click="OnClick" Label="SomeText"

</AppBarButton>
但什么也没发生。按钮没变。但是,在代码工作的任何随机时间,它都可能更改按钮。我总是看到,图标在代码中是新的,但在屏幕上不是。UpdateLayout没有任何帮助。 非常感谢您的帮助。 谢谢

更新:
它似乎不适用于FontIcon,就像BitmapIcon一样,更改一切都可以正常工作。

强制无效范围,它就可以工作了

WeekButton.Icon = new FontIcon() { Glyph = "\uE29B", FontFamily = new FontFamily("Segoe UI Symbol")};
WeekButton.InvalidateArrange();

尝试使用
IconUri
给出值

WeekButton.IconUri = new Uri("/Images/pause.png", UriKind.Relative);

参考资料:

我相信您已经找到了带有位图图标的解决方案。 但是有些人到了这一页想知道解决方案,比如我

下面是使用位图图标和动态更改应用程序栏按钮图标

BitmapIcon _bitmapIcon = new BitmapIcon();
_bitmapIcon.UriSource = new Uri("ms-appx:///Assets/yourBitmapIcon.png");
WeekButton.Icon = _bitmapIcon;

谢谢,但实际上没有,因为这是通用winrt应用程序,而不是wp Silverlight。另一个问题是,我对图标使用运行时值,因此uri也不起作用。不幸的是,按钮仍然随机更新,并非每次都是如此(
BitmapIcon _bitmapIcon = new BitmapIcon();
_bitmapIcon.UriSource = new Uri("ms-appx:///Assets/yourBitmapIcon.png");
WeekButton.Icon = _bitmapIcon;