Какая разница между следующими двумя?
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может привести к нежелательным цветам по умолчанию.