【发布时间】:2018-08-20 17:19:23
【问题描述】:
我正在编写一个 UWP。在这个应用程序的界面中,按钮下有一个 Image 和一个绑定到图像集合的 ObservableCollection。
<Image VerticalAlignment="Center"
HorizontalAlignment="Center" Stretch="Fill"
x:Name="FlatWallpaperUI"/>
但是,这些图像在选择某种重音颜色时会进行处理并变化。 例如,当应用程序启动时,图像会以正确的颜色加载:
我正在尝试通过重置 ObservableCollection 或将 Bitmapimage 重新分配给 XAML 中的图像来重新加载这些图像。 例如,我将位图图像重新分配给按钮下的图像:
ButtonImage.Source = new BitmapImage(new Uri("ms-appx:///Assets/wallpaper2.png"));
对于 ObservableCollection,我尝试清空它,然后阅读这些项目:
Items.Clear();
Items.Add(new ItemClass
{
Name = "First item",
Image = new BitmapImage(new Uri("ms-appx:///Assets/wallpaper1.png"))
});
Items.Add(new ItemClass
{
Name = "Second item",
Image = new BitmapImage(new Uri("ms-appx:///Assets/wallpaper2.png"))
});
我知道这可能是错误的方法,但我已经研究了一段时间,到目前为止还没有明确的解决方案。
在这张图片上,您会看到颜色发生了变化,但图片本身没有!
即使应该处理的图像本身已经成功更改!
我怎样才能解决这个问题并在需要时更新图像?
【问题讨论】:
-
如果您能提供minimal reproducible example,那就太好了。
-
“我正在尝试通过重置 ObservableCollection 或将 Bitmapimage 重新分配给 XAML 中的图像来重新加载这些图像。” - 为使答案完整,请包含执行这些操作的代码。跨度>
-
我很抱歉这个问题不清楚......我重新分配位图图像的意思是我再次将图像源设置为相同的图像,希望它将重新加载到界面中。我已将此添加到问题中。
-
你只有一个图像控件,为什么要使用
ObservableCollection? -
我无法从上面的描述中找出您的要求,可以分享更多代码,例如您的 xaml 绑定设计或提供一个简单的示例。