Как локализовать ToggleSwitch в Windows Phone 7 (локализация Silverlight Toolkit)?

Silverlight Toolkit содержит файл ресурсов с именем Resources.resx, который содержит строковые состояния "Вкл" и "Выкл" для переключателя. Но когда я добавил соответствующий локализованный ресурс Resources.ru-RU.resx, он не был обнаружен локализацией (хотя подобный подход работает для моих собственных ресурсов).

Один из способов сделать это - создать собственную привязку для контента ToggleSwitch, но я надеялся на решение без кодирования. Возможный?

2 ответа

Решение

Вам нужно назвать свой файл ресурсов ControlResources.ru-RU.resx см . статью Андрея Торзена на эту тему.

Локализовать ToggleSwitch в Silverlight Toolkit можно с помощью DataTemplate.

    <toolkit:ToggleSwitch x:Name="MySwitch" Header="Localized Switch">  
        <toolkit:ToggleSwitch.ContentTemplate>  
            <DataTemplate>  
                <ContentControl HorizontalAlignment="Left"   
                    Content="{Binding Converter={StaticResource Switch}}"/>  
            </DataTemplate>  
        </toolkit:ToggleSwitch.ContentTemplate>  
    </toolkit:ToggleSwitch>

Объявите ValueConverter:

    public class BoolToSwitchConverter : IValueConverter  
    {  
        private string FalseValue = Resources.Off;  
        private string TrueValue  = Resources.On;  

        public object Convert(object value, Type targetType, object parameter,
              System.Globalization.CultureInfo culture)  
        {  
            if (value == null)  
                return FalseValue;  
            else  
                return ("On".Equals(value)) ? TrueValue : FalseValue;  
        }  

        public object ConvertBack(object value, Type targetType, 
               object parameter, System.Globalization.CultureInfo culture)  
        {  
            return value != null ? value.Equals(TrueValue) : false;  
        }  
    }

Подробнее здесь.

Другие вопросы по тегам