Обзор - Leksiqq/WpfMarkupExtension GitHub Wiki
Библиотека Net.Leksi.WpfMarkupExtension предназначена для расширения разметки WPF. Она содержит несколько классов, которые могут оказаться полезными при разработке XAML. Все классы содержатся в пространстве имён Net.Leksi.WpfMarkup
.
- StyleCombiner - позволяет применять несколько стилей к элементу без наследования.
- ParameterizedResource - аналог
StaticResourceExtension
, позволяющий использовать ресурсы с параметрами, которые в разметке можно заменять различными значениями. - XamlServiceProviderCatcher - позволяет использовать ParameterizedResource в коде.
- BindingProxy - универсальный ресурс, способный служить ссылкой на любой объект или выступать в качестве привязки.
- BindingProxyMarkup - используется, когда необходимо разместить значение привязки там, где требуется расширение разметки.
- IUniversalConverter - комбинирует интерфейсы
System.Windows.Data.IValueConverter
иSystem.Windows.Data.IMultiValueConverter
для удобства. - DataSwitch - используется вместо большого количества
DataTrigger
, имеющих одну и ту же привязку, но различные пусковые значения. Сокращает как текст XAML, так и количество обращений к источнику привязки. - BoolExpressionConverter - неполная реализация интерфейса
IMultiValueConverter
, в котором реализован методobject Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
, которому передаётся массивbool
значенийvalues
и строка, описывающая Булево выражение над ними, в качествеparameter
. Возвращает результат вычисления выражения. - ConverterProxy - адаптер, являющийся
MarkupExtension
для конвертеровIValueConverter
илиIMultiValueConverter
, которые не являютсяMarkupExtension
и не могут ими стать, так как уже унаследованы от другого типа, но требуются там, где ожидаетсяMarkupExtension
.
Ознакомиться со способом применения библиотеки можно с помощью демо-приложения.
Исходники лежат здесь
Пакет NuGet: Net.Leksi.WpfMarkupExtension
Дальше: (StyleCombiner)