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.
¿Qué tal un convertidor que convierte su texto a mayúsculas? De esta forma su texto original permanece sin cambios.
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}