none
toggle switch本地化的问题 RRS feed

  • 问题

  • 使用windows phone toolkit toggle switch控件的时候,默认显示控件的状态是On和Off,怎么才能改成开和关呢?谢谢!

    系统已经设置成中文。

    2012年6月25日 5:58

答案

  • 你可以下源码http://silverlight.codeplex.com/进行修改.腾讯QQ的toggle switch 就是这样实现多语言的...

    在 Microsoft.Phone.Controls 命名空间下:OffOnConverter类

           public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (targetType == null)
                {
                    throw new ArgumentNullException("targetType");
                }
                if (targetType != typeof(object))
                {
                    throw new ArgumentException(Resources.UnexpectedType, "targetType");
                }
                if (value is bool? || value == null)
                {
                    return (bool?)value == true ? Resources.On : Resources.Off;
                }
                throw new ArgumentException(Resources.UnexpectedType, "value");
            }

    修改成你想要的就可以了
    • 已编辑 chenrensong 2012年6月25日 16:09
    • 已标记为答案 Shi Ding 2012年7月11日 14:58
    2012年6月25日 15:57

全部回复

  • 你好:

    修改此控件的content属性即可满足需要,通过checked事件和unchecked事件来修改conten内容就可以显示开和关了。

    <toolkit:ToggleSwitch x:Name="ShowPage"  Content="{Binding ShowContent}" IsChecked="True" Checked="ShowPage_Checked" Unchecked="ShowPage_Unchecked"  Header="这里是头部">
                    <toolkit:ToggleSwitch.HeaderTemplate>
                        <DataTemplate>
                            <ContentControl Content="{Binding}" />
                        </DataTemplate>
                    </toolkit:ToggleSwitch.HeaderTemplate>
                </toolkit:ToggleSwitch>

    2012年6月25日 7:02
  • 你可以下源码http://silverlight.codeplex.com/进行修改.腾讯QQ的toggle switch 就是这样实现多语言的...

    在 Microsoft.Phone.Controls 命名空间下:OffOnConverter类

           public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (targetType == null)
                {
                    throw new ArgumentNullException("targetType");
                }
                if (targetType != typeof(object))
                {
                    throw new ArgumentException(Resources.UnexpectedType, "targetType");
                }
                if (value is bool? || value == null)
                {
                    return (bool?)value == true ? Resources.On : Resources.Off;
                }
                throw new ArgumentException(Resources.UnexpectedType, "value");
            }

    修改成你想要的就可以了
    • 已编辑 chenrensong 2012年6月25日 16:09
    • 已标记为答案 Shi Ding 2012年7月11日 14:58
    2012年6月25日 15:57