Как привязать к статическому BitmapSource?
Я хотел бы создать свое собственное диалоговое окно ошибки / исключения со стандартным Windows "Значок ошибки".
Я последовал совету из этого вопроса, и он работает.
Однако в настоящее время я создаю свойство экземпляра, к которому привязываюсь, как и к любому свойству:
class ErrorWindowViewModel
{
private readonly ImageSource _errorImage;
public ImageSource ErrorImage { get { return _errorImage; } }
public ErrorWindowViewModel()
{
_errorImage = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
}
Я хотел бы иметь статическое поле, определенное в моем классе ErrorWindow:
partial class ErrorWindow : Window
{
private readonly static ImageSource ErrorImage =
Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
Я не могу заставить свой XAML ссылаться на это поле.
<Image Source="what_to_put_here_to_make_it_work" />
Я использую WPF 4.5.
1 ответ
Решение
Вы должны были бы создать статическое свойство
private static readonly ImageSource errorImage =
Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
public static ImageSource ErrorImage
{
get { return errorImage; }
}
и связать так:
<Image Source="{Binding Source={x:Static local:ErrorWindow.ErrorImage}}"/>