Мое приложение имеет опцию switch-backgrounds, поэтому я хочу проверить, является ли фоновое изображение исходного файла Mainwindow's Background (тогда я установил его по умолчанию Background), проблема в том, что я не могу достичь его через this.Background.ImageSource
, потому что такого варианта нет. Есть идеи?Как определить, имеет ли фон Window значение null?
ответ
Вы могли бы бросить фон на ImageBrush с помощью оператора as
и проверить есть ли у вас нулевая обратная ссылки:
ImageBrush brush = this.Background as ImageBrush;
if(brush == null || brush.ImageSource == null)
{
//no ImageBrush set as the Background...
}
Спасибо, это работает! Вы знаете, почему? – Yair
Если для свойства Background установлено значение ImageBrush, приведение будет успешным, то есть вы получите ссылку на ImageBrush, и если у вас нет, вы получите нулевую ссылку. Это так просто: https://msdn.microsoft.com/en-us/library/cscsdfbt.aspx – mm8
Возможного дубликат [Как попасть обнаружить на нулевом или прозрачный фоне] (HTTP: //stackoverflow.com/questions/15169358/how-to-hit-detect-on-a-null-or-transparent-background) –
Извините, но это вопрос с кодом, а не XAML. – Yair