-
Notifications
You must be signed in to change notification settings - Fork 0
Обзор
Leksiqq edited this page Jun 6, 2024
·
34 revisions
Библиотека 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)