Skip to content

Обзор

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)

Clone this wiki locally