在标签中设置日期格式的文化

时间:2016-07-15 10:44:22

标签: c# wpf xaml internationalization uiculture

如何正确设置文化以使Label的内容为“seg”(星期一用巴西葡萄牙语)?

为TextBlock设置ConverterCulture Text绑定将其更改为pt-BR,但为Label的Content Binding设置ConverterCulture则不会。 XAML如下。

<Window x:Class="CurrentCulture.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.Resources>
            <sys:DateTime x:Key="Td:Mon">2007-1-1</sys:DateTime>
        </Grid.Resources>
        <StackPanel>
            <Label Content="{Binding Source={StaticResource Td:Mon}, ConverterCulture=pt-BR}" ContentStringFormat="{}{0:ddd}"  />
            <TextBlock Text="{Binding Source={StaticResource Td:Mon}, ConverterCulture=pt-BR,StringFormat={}{0:ddd}}" />
        </StackPanel>
    </Grid>
</Window>

1 个答案:

答案 0 :(得分:4)

TextBlock的Text属性类型为string,因此转换器用于将DateTime转换为应用Brasilian样式的字符串。

Label的Content属性类型为object。由于DateTime是一个对象,因此不使用转换器,因此会忽略ConverterCulture。转换为String是由ContentStringFormat使用默认语言。

要获得所需的结果,您可以在标签中添加Language="pt-BR"属性。