如何在Windows Phone 7上本地化ToggleSwitch(本地化Silverlight Toolkit)?

时间:2011-09-01 06:46:38

标签: windows-phone-7 silverlight-toolkit

Silverlight Toolkit有一个名为Resources.resx的资源文件,其中包含交换机的“On”和“Off”字符串状态。但是当我添加了一个相应的本地化资源,Resources.ru-RU.resx时,本地化并未获得它(尽管类似的方法适用于我自己的资源)。

一种方法是为ToggleSwitch内容创建自己的绑定,但我希望有一个非编码解决方案。可能的?

2 个答案:

答案 0 :(得分:6)

可以通过DataTemplate实现Silverlight Toolkit中的本地化ToggleSwitch

    <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;  
        }  
    }

更多详情here

答案 1 :(得分:2)

您需要为资源文件ControlResources.ru-RU.resx命名,请参阅主题Andrej Torzen's article