WPF Metro design: как применить стиль символов к стилю? - PullRequest
4 голосов
/ 18 марта 2011

Я пытаюсь разработать пользовательский интерфейс в WPF , следуя принципам проектирования Metro, - см. Скотт Барнс веб-сайт для большого обзора.
Регистр символов является одним из этапов Metro, который может быть легко достигнут в css с использованием свойства text-transform .
А как насчет управления WPF?
Было бы полезно объявить различные стили для меню, заголовка, субтитров в файле ресурсов и изменить регистр, просто отредактировав примененный стиль.

Примечание:
[1] TextBox.CharacterCasingне применяется, он включает только введенные вручную символы.
[2] Я не могу представить подходящий преобразователь значения для этой задачи.

1 Ответ

0 голосов
/ 23 мая 2012

Есть несколько подходов к этому.В каждом конкретном случае вам могут потребоваться все прописные или строчные буквы.Вы можете легко применить ValueConverter, который будет применять логику и возвращать значение.

Быстрый пример реализации этого типа:

<converters:LowerCase x:Key="toLowerConverter"/>

<ControlTemplate TargetType="CustomControlYouMade">
   <HeaderedContentControl Header="{Binding RelativeSource={RelativeSource AncestorType={x:Type CustomControlYouMade}}, Path=Header, Converter={StaticResource toLowerConverter}}" />
</ControlTemplate>

И логика преобразователя:

public sealed class LowerCase : IValueConverter {
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
        var str = value as string;
        return string.IsNullOrEmpty(str) ? string.Empty : str.ToLower();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {}
}

Для расширенных параметров типографии, таких как лигатуры, нижний индекс / верхний индекс, swash, и так далее. Вам понадобится совместимый шрифт OpenType.Посмотрите эту статью MSDN , чтобы узнать, что возможно.

...