我知道有很多类似的问题,但到目前为止,还没有一个解决问题或显示出一个可行的解决方案。
在UWP应用程序中,我有一个
Image
(在一个
ViewBox
)其源由用户选择新图像来更改。我已经确认代码中没有抛出异常,下面的switch案例中的所有内容都工作得很好。我试过用
InvalidateArrange()
,
InvalidateMeasure()
,和
UpdateLayout()
在图像上,和
更新布局()
上
视图框
,但似乎什么都没用。代码运行时会删除初始图像,但不会显示新图像,它只是显示一个空格。
有人能看一下下面的代码,看看你能不能找到问题?我确信这是我忽略的一件简单的事情,我只是好像找不到它是什么。
C#代码
private async void ChangeIcon(int selection)
{
try
{
switch (selection)
{
case 0:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpRed.png"));
break;
case 1:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpOrange.png"));
break;
case 2:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpYellow.png"));
break;
case 3:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpGreen.png"));
break;
case 4:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpBlue.png"));
break;
case 5:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpPurple.png"));
break;
case 6:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/tpPink.png"));
break;
case 7:
imageEntry.Source = new BitmapImage(new Uri("ms-appx:///FtpSharp/Assets/ftpTeal.png"));
break;
}
}
catch (Exception ex)
{
ContentDialog dialog = new ContentDialog
{
Title = "Exception found!",
Content = ex.ToString(),
CloseButtonText = "Understood"
};
await dialog.ShowAsync();
}
}
可视框/图像XAML
<Viewbox Grid.Column="2" Grid.Row="0" Grid.RowSpan="4" Margin="5,15,5,0">
<Image x:Name="imageEntry" Source="Assets/SquircleX.png" Tapped="ImageEntry_TappedAsync" />
</Viewbox>