3

以下のようにWPFでXAMLで大文字を小文字に変換しようとしました:

<TextBox Height="86" CharacterCasing="Upper"/>

TextBlockLabelおよびで同じシナリオを実現したいButton

どうすればいいですか?

4

3 に答える 3

10

値コンバーターを使用する必要があります。

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

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return null;
    }
}
于 2013-08-08T10:53:34.373 に答える
2

これを行う 1 つの方法は、イベントを使用NotifyOnTargetUpdatedして処理することです。TextChanged

XAML

<TextBlock Name="TB" Text="{Binding Path=YourProperty, NotifyOnTargetUpdated=True}"
               TargetUpdated="TB_TargetUpdated" />

コードビハインド

private void TB_TargetUpdated(object sender, DataTransferEventArgs e)
{
   TB.Text = TB.Text.ToUpper();
}
于 2012-12-21T15:23:42.357 に答える
0

それを見てください:すべてのテキストを大文字/大文字にする方法は?.

より一般的には、値を変換してコントロールに入れたいときはいつでも、コンバーターを考えて自分で書きます (または既に存在する場合はそれを使用します)。

コンバーターに関する追加のドキュメントは、http ://wpftutorial.net/ValueConverters.html にあります。

于 2012-12-21T13:08:44.590 に答える