visual studio solo net minusculas mayusculas convertir wpf xaml binding textblock uppercase

wpf - studio - mayusculas en visual basic



WPF/XAML: ¿Cómo hacer que todo el texto sea mayúscula en TextBlock? (5)

Quiero que todos los caracteres en un TextBlock se muestren en mayúsculas

<TextBlock Name="tbAbc" FontSize="12" TextAlignment="Center" Text="Channel Name" Foreground="{DynamicResource {x:Static r:RibbonSkinResources.RibbonGroupLabelFontColorBrushKey}}" />

Las cadenas se toman a través de enlace. No quiero que las cadenas estén en mayúsculas en el diccionario mismo.



Si no es gran cosa, podrías usar TextBox en lugar de TextBlock así:

<TextBox CharacterCasing="Upper" IsReadOnly="True" />


Yo uso un convertidor de valor de la carcasa del personaje:

class CharacterCasingConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var s = value as string; if (s == null) return value; CharacterCasing casing; if (!Enum.TryParse(parameter as string, out casing)) casing = CharacterCasing.Upper; switch (casing) { case CharacterCasing.Lower: return s.ToLower(culture); case CharacterCasing.Upper: return s.ToUpper(culture); default: return s; } } object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotSupportedException(); } }


O usar

Typography.Capitals="AllSmallCaps"

en su definición TextBlock .

Vea aquí: MSDN - Typography.Capitals

EDITAR:

Esto no funciona en Windows Phone 8.1 , solo en Windows 8.1 ...


Implementa un convertidor personalizado.

using System.Globalization; using System.Windows.Data; // ... public class StringToUpperConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value != null && value is string ) { return ((string)value).ToUpper(); } return value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } }

Luego incluya eso en su XAML como recurso:

<local:StringToUpperConverter x:Key="StringToUpperConverter"/>

Y añádelo a tu encuadernación:

Converter={StaticResource StringToUpperConverter}