Tengo un bloque de texto que muestra la fecha/hora. El aspecto del reloj puede ser diferente en algunos controles de la aplicación, en cuanto al color y quizás a la fuente, pero quiero que la fecha y la hora tengan el mismo formato.
Sé que puedo configurar la propiedad StringFormat así:
<TextBlock Text="{Binding CurrentDateTime, StringFormat='{}{0:h\:mm tt}'}" Foreground="White" FontFamily="Proxima Nova Rg" FontSize="20" />Sin embargo, no sé cómo extraer el formato de cadena en un diccionario de recursos de cadena separado. Traté de hacer algo como lo siguiente, pero la cadena de fecha y hora no apareció en absoluto.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib"> <system:String x:Key="MyFormat">{}{0:h\:mm tt}</system:String> </ResourceDictionary> <!-- In another file --> <TextBlock Text="{Binding CurrentDateTime, StringFormat={StaticResource MyFormat}}" Foreground="White" FontFamily="Proxima Nova Rg" FontSize="20" />¿Se puede hacer esto en absoluto? ¿Si es así, cómo?
Gracias
Parece que solo tienes que eliminar el {} :
<system:String x:Key="MyFormat">{0:h\:mm tt}</system:String> Se requiere {} para los valores de atributos para evitar que se interpreten como una extensión de marcado. Sin embargo, con la sintaxis del elemento de propiedad, ya no necesita el {} porque las llaves no tienen un significado especial en ese contexto.