{x: Null} против прозрачного?

Какая разница между следующими двумя?

Background="{x:Null}"

и

Background="Transparent"

Ответ 1

Transparent создаст кисть, которая будет инициализирована прозрачным цветом, null установит свойство равным null, это означает, что свойство назначения не имеет прикрепленной кисти. В WPF часто важно установить кисть элемента. Если вы, например, хотите отслеживать мышиные элементы в элементе, вы должны установить фон. Если вы не хотите устанавливать сплошной цвет (сделать его непрозрачным), вы можете использовать прозрачную кисть. Это можно сделать со строковым значением "Прозрачный" .
Разница заключается в том, как будет устанавливаться свойство. Если вы присвоите null для свойства brush, свойство будет действительно равно null. Если вы установите строку "Прозрачный" , то по умолчанию value-converter, который преобразует строку в кисти, преобразует ее в кисть Brushes.Transparent.

Краткая версия: {x:Null} устанавливает для свойства назначения значение null. "Прозрачный" устанавливает свойство назначения прозрачной кисти.

Ответ 2

Оба устанавливают локальное значение свойства Background. Первый устанавливает его на null, а второй устанавливает его на Brushes.Transparent.

Есть несколько важных моментов, о которых нужно знать:

  • Установка значения null - это не то же самое, что не устанавливать его вообще. Поскольку свойства зависимостей получают их эффективное значение из нескольких источников, установка локального значения (даже если оно null) может иметь приоритет над значениями, потенциально полученными из в другом месте, например, стиль или анимация.
  • Другим вариантом управления видимостью проверки теста является свойство IsHitTestVisible. Это свойство позволяет вам контролировать видимость тестового теста независимо от кисти, с помощью которой отображается UIElement.

Ответ 4

Элементы с фоном Transparent получают события щелчка мыши при нажатии на фон, элементы с Null не делают.

Ответ 5

Transparent кисть

Будет устанавливать фоновый альфа-канал на 0 который будет прозрачным на 100%

Значение {x:Null}

В WPF будет задан фоновый цвет по умолчанию для элемента управления, который обычно является белым в некоторых свойствах, таких как DataGrid.RowBackground и Transparent в большинстве других свойств.

Хорошая привычка - указывать цвет кисти, так как установка кисти на Null может привести к нежелательным цветам по умолчанию.