4

Metro の設計原則に従って、 WPFで UI を開発しようとしています。すばらしい調査については、Scott BarnesのWeb サイトを参照してください。
文字のケーシングは Metro マイルストーンの 1 つで、 text-transformプロパティを使用してcssで簡単に実現できます。 WPF コントロールはどうですか? リソース ファイルでメニュー、タイトル、サブタイトルのさまざまなスタイルを宣言し、適用されたスタイルを編集するだけで大​​文字と小文字を変更すると便利です。

注:
[1] TextBox.CharacterCasing は適用されません。手動で入力された文字のみが含まれます。
[2] このタスクに適した値コンバーターが思い浮かびません。

4

1 に答える 1

0

これにはいくつかのアプローチがあります。ケースごとに、すべて大文字または小文字が必要な場合があります。ロジックを適用して値を返す 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) {}
}

合字、下付き/上付き、スワッシュなどの高度なタイポグラフィ オプションを使用するには、互換性のある OpenType フォントが必要です。可能なことについては、このMSDNの記事を参照してください。

于 2012-05-23T14:39:33.253 に答える