完善主體資料,免費贈送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在线一区二区三区| 国产成人精品一区二区三区免费| asmr国产一区在线| 在线观看一区二区精品视频| 亚洲综合色一区二区三区| 亚洲高清一区二区三区| 日韩免费无码视频一区二区三区| 久久久久人妻一区精品果冻| 一级毛片完整版免费播放一区| 日本一区二区三区日本免费| 日韩高清一区二区三区不卡 | 中文人妻av高清一区二区| 一区二区国产在线播放| 果冻传媒一区二区天美传媒| 岛国精品一区免费视频在线观看| 国产av福利一区二区三巨| 国偷自产Av一区二区三区吞精| 精品免费久久久久国产一区 | 亚洲视频一区在线播放| 久久99国产精品一区二区| 日韩av无码一区二区三区| 亚洲狠狠久久综合一区77777| 精品国产一区二区三区麻豆| 国产婷婷一区二区三区|