У меня небольшая проблема, и я не могу найти решение. Может быть, это проблема в Visual Studio.
Я создал новый класс, унаследованный от Image. Затем я переопределяю свойство Source.
class GifImage : Image
{
public new ImageSource Source
{
get { return base.Source; }
set
{
MesssageBox("new source property");
base.Source = value;
}
}
}
Если я установлю Источник в коде
GifImage gifImage = new GifImage();
gifImage.Source = gifimage2;
Тогда Источник будет правильно установлен на GifImage, и будет показан MessageBox.
Но если я установлю Source в Xaml-коде:
<my1:GifImage Stretch="Uniform" Source="/WpfApplication1;component/Images/Preloader.gif" />
Тогда будет установлено свойство Source для Image, и MessageBox не будет показан.
Моя идея состояла в том, чтобы установить System.ComponentModel.Browsable-Attribute, полагая, что, возможно, свойство в наследуемом классе GifImage невидимо в Visual Studio и использует свойство source родительского класса.
[Browsable(true)]
public new ImageSource Source
Но это все еще не работает.
У кого-нибудь была такая же проблема или / и решение для этого?