我在运行时根据某些条件更新AppBarButton Icon时出现问题。
<AppBarButton x:Name="WeekButton" Click="OnClick" Label="SomeText"
</AppBarButton>
我正在尝试使用此代码更新某些代码中的Icon属性
WeekButton.Icon = new FontIcon() { Glyph = Runtime_Value_Here};
但没有任何反应。按钮不会改变。但是在代码工作的任何随机时间,它可以改变按钮。我总是看到,Icon是新代码,但不是屏幕上的。 UpdateLayout都没有帮助。 非常感谢任何帮助。 感谢
更新 它似乎不适用于FontIcon,因为BitmapIcon改变一切正常。
答案 0 :(得分:2)
强制InvalidateArrange并且它可以正常工作
WeekButton.Icon = new FontIcon() { Glyph = "\uE29B", FontFamily = new FontFamily("Segoe UI Symbol")};
WeekButton.InvalidateArrange();
答案 1 :(得分:2)
我相信你已经找到了带位图图标的解决方案。 但有些人到了这个页面,想要知道像我这样的解决方案,
这里使用位图图标并动态更改app-bar按钮图标。
BitmapIcon _bitmapIcon = new BitmapIcon();
_bitmapIcon.UriSource = new Uri("ms-appx:///Assets/yourBitmapIcon.png");
WeekButton.Icon = _bitmapIcon;
答案 2 :(得分:0)
尝试使用IconUri
来提供值。
WeekButton.IconUri = new Uri("/Images/pause.png", UriKind.Relative);
参考:Disable/Enable applicationbar Button in runtime with event textchanged (Windows Phone)