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

发布于 2024-12-02 19:15:29 字数 202 浏览 0 评论 0原文

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

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

Silverlight Toolkit has a resource file named Resources.resx, which contains "On" and "Off" string states for the switch. But when I have added a corresponding localized resource, Resources.ru-RU.resx, it wasn't picked up by the localization (though the similar approach works for my own resources).

One way to do it is to create my own binding for the ToggleSwitch Content, but I was hoping for a non-coding solution. Possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无法回应 2024-12-09 19:15:29

Silverlight Toolkit 中的 Localize ToggleSwitch 可以通过 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;  
        }  
    }

更多详细信息

Localize ToggleSwitch in Silverlight Toolkit can be achived via 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>

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

More details here.

水波映月 2024-12-09 19:15:29

您需要将资源文件命名为 ControlResources.ru-RU.resx ,请参阅 Andrej Torzen 关于该主题的文章

You need to name your resource file ControlResources.ru-RU.resx , see Andrej Torzen's article on the subject.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文