Это означает, что наиболее переносимым способом определения реализации методов классов шаблонов является определение их внутри определения класса шаблона.
template < typename ... >
class MyClass
{
int myMethod()
{
// Not just declaration. Add method implementation here
}
};
Transparent
создаст кисть, которая инициализируется прозрачным цветом, null установит для свойства значение null, это означает, что свойство назначения не имеет присоединенной кисти. В WPF часто важно установить кисть для элемента. Если вы, например, хотите отследить нажатия мыши в элементе, вы должны установить фон. Если вы не хотите устанавливать сплошной цвет (сделать его непрозрачным), вы можете использовать прозрачную кисть. Это можно сделать с помощью строкового значения «Прозрачный».
Разница заключается в том, как будет установлено свойство. Если вы назначите null для свойства кисти, для свойства будет действительно установлено значение null. Если вы установите строку «Прозрачный», преобразователь значений по умолчанию , который преобразует строку в кисти, преобразует ее в кисть Brushes.Transparent
.
Краткая версия : {x:Null}
устанавливает для свойства адресата значение null. «Прозрачный» устанавливает свойство назначения прозрачной кистью.
Оба устанавливают локальное значение свойства Background
. Первый устанавливает его на null
, а второй устанавливает на Brushes.Transparent
.
Есть несколько важных моментов, о которых следует помнить:
null
- это , а не - это то же самое, что не установка его вообще. Поскольку свойства зависимостей получают свое эффективное значение из нескольких источников , установка локального значения (даже если оно null
) может иметь приоритет над значениями, которые могут быть получены из других источников, таких как стиль или анимация. IsHitTestVisible
. Это свойство позволяет вам контролировать видимость теста удара независимо от кисти, с которой отображается UIElement
. {x:Null}
не будет кликабельным, Transparent
будет.