Ну, Image.Source
имеет тип ImageSource
, нет гарантии, что это будет BitmapImage
, это может быть хотя. Если источник создан синтаксическим анализатором XAML, это будет BitmapFrameDecode
(который является внутренним классом). В любом случае, единственное назначение сохранения:
ImageSource source = img.Source;
в противном случае вам нужно разыграть :
BitmapImage source = (BitmapImage)img.Source;
, который выдаст исключение, если Source
не относится к этому типу. Таким образом, вы можете либо сохранить-бросить или попробовать-поймать :
//(Possibly check for img.Source != null first)
BitmapImage source = img.Source as BitmapImage;
if (source != null)
{
//If img.Source is not null the cast worked.
}
try
{
BitmapImage source = (BitmapImage)img.Source;
//If this line is reached it worked.
}
catch (Exception)
{
//Cast failed
}
Вы также можете предварительно проверить тип, используя img.Source
is
BitmapImage
.