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

    下載app免費領(lǐng)取會員

    NULL

    ad.jpg

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

    發(fā)布于:2019-08-23 17:01:54

    網(wǎng)友投稿

    更多

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


    如:


            public MainWindow()

            {

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

                InitializeComponent();

            }




    如果要動態(tài)切換的話可以使用擴展標(biāo)記:


        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");

            }


    本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

    未標(biāo)題-1.jpg

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

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

    主站蜘蛛池模板: 国产精品乱码一区二区三区| 人妻少妇一区二区三区| 精品理论片一区二区三区| 亚洲熟妇av一区二区三区| 国产福利一区二区精品秒拍| 日韩精品一区二区三区四区 | 一级毛片完整版免费播放一区| 久久精品国产一区二区三 | 国产精品免费一区二区三区| 亚洲精品伦理熟女国产一区二区 | aⅴ一区二区三区无卡无码| 国产一区二区三区乱码在线观看| 色噜噜狠狠一区二区三区| 久久国产免费一区二区三区| 国产一区二区视频在线观看| 精品无码成人片一区二区| 国产在线观看精品一区二区三区91| 色欲AV蜜桃一区二区三| 国产精品高清一区二区人妖| 麻豆国产一区二区在线观看| 亚洲一区二区三区四区视频| 无码欧精品亚洲日韩一区| 日韩精品无码免费一区二区三区| 美女视频在线一区二区三区| 免费视频精品一区二区三区| 国产在线不卡一区二区三区| 国产av天堂一区二区三区| 国产一区视频在线| 亚洲av鲁丝一区二区三区| 精品无码AV一区二区三区不卡| 久久久国产精品亚洲一区| 亚洲欧洲日韩国产一区二区三区 | 精品一区二区三区在线观看l | 无码少妇精品一区二区免费动态| 麻豆视传媒一区二区三区| 国产成人高清亚洲一区久久| 国产aⅴ精品一区二区三区久久| 免费无码AV一区二区| 久久久久人妻一区精品| 国产一区二区在线看| 亚洲欧美一区二区三区日产|