xaml - 在图像文件名中使用限定符在 UWP 运行时不起作用
问题描述
我试图在 UWP 应用程序中更改 Theme/HighContrast 更改的图像。我点击了链接:定制资源 但是当我在应用程序运行时更改主题时它不起作用。它在应用程序重新启动后工作。我同时遵循了文件夹名称限定符和文件名限定符。我需要做任何额外的改变吗?谁能帮帮我吗?
解决方案
但是当我在应用程序运行时更改主题时它不起作用。它在应用程序重新启动后工作。
它是设计使然,源自官方文档,我们需要监听系统对比度主题更改时将调用的MapChanged事件。并手动修改图像源。
例如 :
public MainPage()
{
this.InitializeComponent();
var qualifierValues = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().QualifierValues;
qualifierValues.MapChanged += new Windows.Foundation.Collections.MapChangedEventHandler<string, string>(QualifierValues_MapChanged);
}
private async void QualifierValues_MapChanged(IObservableMap<string, string> sender, IMapChangedEventArgs<string> @event)
{
var dispatcher = this.MyImage.Dispatcher;
if (dispatcher.HasThreadAccess)
{
this.RefreshUIImages();
}
else
{
await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => this.RefreshUIImages());
}
}
private void RefreshUIImages()
{
var namedResource = Windows.ApplicationModel.Resources.Core.ResourceManager.Current.MainResourceMap[@"Files/Assets/Images/logo.jpg"];
this.MyImage.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(namedResource.Uri);
}
推荐阅读
- javascript - onclick 链接隐藏 img 以获得相同的通知想法
- javascript - 从另一个页面重定向到革命滑块下方的锚点变低
- linux - 包括构建根的补丁
- ios - 如何在 Swift3 ios 中获取上周的日期
- android - 使用 Xamarin UiTest 启用/禁用 wifi
- excel - 使用 IMPORTXML 提取 Instagram 帖子,例如 count
- drupal-8 - 自定义模块不适用于自定义引导子主题 - Drupal 8
- amazon-web-services - 错误消息 = 进程在完成请求之前退出。错误 = 池已关闭
- ruby-on-rails - Rails - 如何运行 Helpy 应用程序?
- c# - 使用 WebClient 时如何绕过系统代理