在代码背后从Toggleswitch获取属性

时间:2017-07-17 11:47:25

标签: c# wpf mahapps.metro

我正在寻找一种方法来访问代码背后的toggleswitch属性值。 某些属性包含我要翻译的文本。为了实现这一点,我使用了网上有趣的功能。 带普通标签的示例:

List<Label> label_list = GetLogicalChildCollection<Label>(_contour.ContourGrid);
        for (int i = 0; i < label_list.Count; i++)
        {

            if (Translator.HasProperty(label_list[i], "Content"))
            {

                var _valuefromProperty = label_list[i].GetType().GetProperty("Content");
                string value = _valuefromProperty.GetValue(label_list[i], null) as string;
                Translator.SetProperty(label_list[i], "Content", _translation.Translate(value));



            }
        }

但是当元素是使用框架MahApps开发的ToggleSwitch时,它不起作用。

我使用的代码与之前大致相同:

 List<ToggleSwitch> toggle_list = GetLogicalChildCollection<ToggleSwitch>(_contour.ContourGrid);
        for (int i = 0; i < label_list.Count; i++)
        {

            if (Translator.HasProperty(toggle_list[i], "OffLabel"))
            {

                var _valueOff = label_list[i].GetType().GetProperty("OffLabel");
                string value_off_str = _valueOff.GetValue(toggle_list[i], null) as string;
                Translator.SetProperty(label_list[i], "OffLabel", _translation.Translate(value_off_str));


                var _valueOn = label_list[i].GetType().GetProperty("OnLabel");
                string value_on_str = _valueOn.GetValue(label_list[i], null) as string;
                Translator.SetProperty(label_list[i], "OnLabel", _translation.Translate(value_on_str));
            }
        }

变量_valueOff = null。你有什么想法吗?

0 个答案:

没有答案