Я знаю, что есть много вопросов, похожих на этот вопрос в SO, но ни один до сих пор не устранил проблему и не показал решение, которое работает.
В приложении UWP у меня есть Image
(внутриViewBox
) Источник которого изменяется пользователем, выбирающим новое изображение.Я подтвердил, что в коде нет никаких исключений, и все в приведенном ниже случае переключения отлично работает.Я попытался использовать InvalidateArrange()
, InvalidateMeasure()
и UpdateLayout()
на изображении и UpdateLayout()
на ViewBox
, но, похоже, ничего не работает.Исходное изображение удаляется при выполнении кода, но новое изображение не отображается, оно просто показывает пустое пространство.
Может кто-нибудь, пожалуйста, просмотрите код ниже и посмотрите, сможете ли вы найти проблему?Я уверен, что это что-то простое, я упускаю из виду, я просто не могу найти, что это такое.
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();
}
}
ViewBox / изображение 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>