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

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

    NULL

    ad.jpg

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

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

    網(wǎng)友投稿

    更多

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


    如:


            public MainWindow()

            {

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

                InitializeComponent();

            }




    如果要?jiǎng)討B(tài)切換的話可以使用擴(kuò)展標(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ā)獲取梁的寬和高

    60acb4e0ef112.png
    主站蜘蛛池模板: 精品aⅴ一区二区三区| 精品一区二区三区无码视频| 亚洲一区二区三区电影| 久久精品中文字幕一区| 一区二区三区在线免费| 国产精品一区二区综合| 无码一区二区三区中文字幕| 国产在线一区二区三区av| 日韩av片无码一区二区三区不卡| 国产高清在线精品一区二区三区| 日本一区二区三区高清| 人妻AV中文字幕一区二区三区| 久久国产视频一区| 亚洲AV无码片一区二区三区| 免费视频精品一区二区| 国产乱码一区二区三区爽爽爽| 亚洲高清美女一区二区三区| 国产在线精品观看一区| 久久精品免费一区二区三区| 97精品一区二区视频在线观看| 波多野结衣在线观看一区| 国产精品无圣光一区二区| 无码精品一区二区三区在线| 成人免费视频一区| 久久99热狠狠色精品一区| 日韩精品一区二区三区国语自制 | 国产成人久久精品麻豆一区| 精品国产一区二区三区免费| 在线观看一区二区三区视频| 天堂国产一区二区三区| 日本在线电影一区二区三区| 亚洲电影一区二区三区| 一区二区高清在线| AV鲁丝一区鲁丝二区鲁丝三区| 亚洲一区二区三区在线视频| 亚洲熟女乱色一区二区三区| 国产一区二区精品久久| 视频一区二区中文字幕| 欧美日韩精品一区二区在线视频 | 日韩一区二区在线观看| 3d动漫精品成人一区二区三|