Какая разница между следующими двумя?
Background="{x:Null}"
и
Background="Transparent"
Какая разница между следующими двумя?
Background="{x:Null}"
и
Background="Transparent"
Transparent
создаст кисть, которая будет инициализирована прозрачным цветом, null установит свойство равным null, это означает, что свойство назначения не имеет прикрепленной кисти.
В WPF часто важно установить кисть элемента. Если вы, например, хотите отслеживать мышиные элементы в элементе, вы должны установить фон. Если вы не хотите устанавливать сплошной цвет (сделать его непрозрачным), вы можете использовать прозрачную кисть. Это можно сделать со строковым значением "Прозрачный" .
Разница заключается в том, как будет устанавливаться свойство. Если вы присвоите null для свойства brush, свойство будет действительно равно null. Если вы установите строку "Прозрачный" , то по умолчанию value-converter, который преобразует строку в кисти, преобразует ее в кисть Brushes.Transparent
.
Краткая версия: {x:Null}
устанавливает для свойства назначения значение null. "Прозрачный" устанавливает свойство назначения прозрачной кисти.
Оба устанавливают локальное значение свойства Background
. Первый устанавливает его на null
, а второй устанавливает его на Brushes.Transparent
.
Есть несколько важных моментов, о которых нужно знать:
null
- это не то же самое, что не устанавливать его вообще. Поскольку свойства зависимостей получают их эффективное значение из нескольких источников, установка локального значения (даже если оно null
) может иметь приоритет над значениями, потенциально полученными из в другом месте, например, стиль или анимация.IsHitTestVisible
. Это свойство позволяет вам контролировать видимость тестового теста независимо от кисти, с помощью которой отображается UIElement
. {x:Null}
не будет нажата, Transparent
будет.
Элементы с фоном Transparent
получают события щелчка мыши при нажатии на фон, элементы с Null
не делают.
Transparent
кисть Будет устанавливать фоновый альфа-канал на 0
который будет прозрачным на 100%
{x:Null}
В WPF будет задан фоновый цвет по умолчанию для элемента управления, который обычно является белым в некоторых свойствах, таких как DataGrid.RowBackground
и Transparent в большинстве других свойств.
Хорошая привычка - указывать цвет кисти, так как установка кисти на
Null
может привести к нежелательным цветам по умолчанию.