完善主體資料,免費贈送VIP會員!
    * 主體類型
    * 企業名稱
    * 信用代碼
    * 所在行業
    * 企業規模
    * 所在職位
    * 姓名
    * 所在行業
    * 學歷
    * 工作性質
    請先選擇行業
    您還可以選擇以下福利:
    行業福利,領完即止!

    下載app免費領取會員

    NULL

    ad.jpg

    二次開發教程:WPF 使用net 資源多語言

    發布于:2019-08-23 17:01:54

    網友投稿

    更多

    在WPF 用。net資源做多語言話的話,如果不要求動態切換可以在Xaml里直接使用Resource,在使用之前設置一下CultureInfo就可以了


    如:


            public MainWindow()

            {

                Res.Culture = CultureInfo.GetCultureInfo("en-US");

                InitializeComponent();

            }




    如果要動態切換的話可以使用擴展標記:


        public class LanguageUtils : MarkupExtension,INotifyPropertyChanged

        {

            private static ResourceManager manager = Res.ResourceManager;


            private static EventHandler<EventArgs> LanguageChangeEvent;


            public static void SetLanguage(string culture)

            {

                Res.Culture =new CultureInfo(culture);

                if (LanguageChangeEvent != null)

                    LanguageChangeEvent(null, null);

            }



            static LanguageUtils()

            {

               // Res.Culture = new CultureInfo("en-US");

            }

            public LanguageUtils()

            {

                LanguageChangeEvent += LanguageChanged;

            }



            private void LanguageChanged(object sender, EventArgs e)

            {

                RaisePropertyChanged();

            }



            public string Key

            {

                get;

                set;

            }



            public string Value

            {

                get

                {

                    return manager.GetString(Key, Res.Culture);

                }

            }


            public event PropertyChangedEventHandler PropertyChanged;


            private void RaisePropertyChanged()

            {

                if(PropertyChanged!=null)

                {

                    PropertyChanged(this, new PropertyChangedEventArgs("Value"));

                }

            }



            public override object ProvideValue(IServiceProvider serviceProvider)

            {

                IProvideValueTarget target = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;

                FrameworkElement elm = target.TargetObject as FrameworkElement;

                Binding binding = new Binding("Value")

                {

                    Source = this,

                    Mode = BindingMode.OneWay

                };

                object obj = binding.ProvideValue(serviceProvider);

                return obj;

            }

        }


    在xaml里:


    <Button Content="{local:LanguageUtils Key=String1}" HorizontalAlignment="Left" Margin="183,132,0,0" VerticalAlignment="Top" Width="212" Click="Button_Click"/>




    切換事件:


            private void Button_Click(object sender, RoutedEventArgs e)

            {

                if(Res.Culture.Name=="zh-CN")

                    LanguageUtils.SetLanguage("en-US");

                else

                    LanguageUtils.SetLanguage("zh-CN");

            }


    本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

    未標題-1.jpg

    上一篇:二次開發教程:C#鍵盤鉤子

    下一篇:二次開發教程:Revit開發獲取梁的寬和高

    主站蜘蛛池模板: 亚洲AV成人精品日韩一区| 台湾无码一区二区| 一区二区三区91| 91午夜精品亚洲一区二区三区| 精品无码综合一区二区三区 | 无码AV动漫精品一区二区免费| 午夜福利一区二区三区在线观看| 色婷婷av一区二区三区仙踪林| 久久综合九九亚洲一区| 视频一区二区在线观看| 成人一区专区在线观看| 91精品一区二区综合在线| 免费一区二区无码东京热| 国产日韩AV免费无码一区二区三区| 天美传媒一区二区三区| 无码人妻一区二区三区兔费| 亚洲一区二区三区日本久久九| 中文字幕aⅴ人妻一区二区| 亚洲片一区二区三区| 午夜精品一区二区三区在线视 | 亚州国产AV一区二区三区伊在| 人妻互换精品一区二区| 精品人妻少妇一区二区三区不卡 | 乱码人妻一区二区三区| 国产精品视频分类一区| 国产一区二区三区影院| 国产精品视频分类一区| 亚洲一区二区三区写真| 无码中文字幕一区二区三区| 久久青青草原一区二区| 精品日韩一区二区| 国产SUV精品一区二区88| 精品免费国产一区二区三区| 91在线一区二区| 福利片福利一区二区三区| 在线精品亚洲一区二区小说| 午夜福利一区二区三区高清视频| 乱色精品无码一区二区国产盗| 无码人妻AⅤ一区二区三区| 精品福利一区3d动漫| 伦理一区二区三区|