当前位置: 首页 > news >正文

重庆企业站seo门户网站建设费用

重庆企业站seo,门户网站建设费用,江西南昌网站建设公司哪家好,充电宝seo关键词优化目录 一、多语言切换#xff08;需重启#xff09; 1、配置文件添加Key 2、新增附加属性当前选择语言 3、创建资源文件 4、初始化多语言集合 5、切换多语言并更新配置文件 6、应用程序启动根据配置切换多语言 7、使用 二、多语言切换#xff08;无需重启#xff09;…目录 一、多语言切换需重启 1、配置文件添加Key 2、新增附加属性当前选择语言 3、创建资源文件 4、初始化多语言集合 5、切换多语言并更新配置文件 6、应用程序启动根据配置切换多语言 7、使用 二、多语言切换无需重启 1、创建多语言标记扩展基类 2、添加资源转换器 3、创建资源文件 4、继承基类创建指定资源文件扩展 5、添加资源文件管理 6、切换语言 7、使用 8、后台使用多语言 ①获取多语言资源字符串 ②后台绑定 一、多语言切换需重启 1、配置文件添加Key appSettingsadd keylanguage valuezh-CN//appSettings 2、新增附加属性当前选择语言 public CultureInfo SelectLanguage{get (CultureInfo)GetValue(SelectLanguageProperty);set SetValue(SelectLanguageProperty, value);}public static readonly DependencyProperty SelectLanguageProperty DependencyProperty.Register(SelectLanguage, typeof(CultureInfo), typeof(MainWindow)); 3、创建资源文件 4、初始化多语言集合 public ObservableCollectionCultureInfo CultureInfos { get; private set; } new ObservableCollectionCultureInfo();private void Window_Loaded(object sender, RoutedEventArgs e){var dir Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);var curs CultureInfo.GetCultures(CultureTypes.AllCultures);foreach (CultureInfo cur in curs){if (string.IsNullOrWhiteSpace(cur.Name)) continue;string landir Path.Combine(dir, cur.Name);if (Directory.Exists(landir)) CultureInfos.Add(cur);}if (CultureInfos.Any(cur cur.Name.Equals(zh-CN, StringComparison.OrdinalIgnoreCase)) is false){var cur curs.FirstOrDefault(c c.Name.Equals(zh-CN, StringComparison.OrdinalIgnoreCase));if (cur ! null) CultureInfos.Add(cur);}SelectLanguage Thread.CurrentThread.CurrentCulture;} 5、切换多语言并更新配置文件 protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e){base.OnPropertyChanged(e);if (e.Property SelectLanguageProperty){if (SelectLanguage Thread.CurrentThread.CurrentCulture) return;Configuration config ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);if (ConfigurationManager.AppSettings[language] is null)config.AppSettings.Settings.Add(language, SelectLanguage.Name);elseconfig.AppSettings.Settings[language].Value SelectLanguage.Name;config.Save();ConfigurationManager.RefreshSection(appSettings);}} 6、应用程序启动根据配置切换多语言 /// summary/// App.xaml 的交互逻辑/// /summarypublic partial class App : Application{protected override void OnStartup(StartupEventArgs e){base.OnStartup(e);var lan ConfigurationManager.AppSettings[language];if (!string.IsNullOrWhiteSpace(lan)){CultureInfo culture new CultureInfo(lan);Thread.CurrentThread.CurrentCulture culture;Thread.CurrentThread.CurrentUICulture culture;}}} 7、使用 ①映射命名空间 xmlns:rsclr-namespace:WpfApp8.Resources ②示例 GridGroupBox x:NamegboxGridButton Width100Height80BackgroundLightGrayContent{x:Static rs:SRS.TestLan} /ComboBox Width150Height50HorizontalAlignmentLeftVerticalContentAlignmentCenterDisplayMemberPathNativeNameItemsSource{Binding PathCultureInfos, ElementNameMW}SelectedItem{Binding PathSelectLanguage, ElementNameMW} //Grid/GroupBox/Grid 二、多语言切换无需重启 安装Nuget包WpfExtensions.Xaml 1、创建多语言标记扩展基类 /// summary/// 多语言绑定扩展基类 /// /summary/// typeparam nameT多语言文件资源类/typeparam[MarkupExtensionReturnType(typeof(object))]public class LanguageExtensionBaseT : MarkupExtension where T : class{private static readonly ResourceConverter ResourceConverter new ResourceConverter();[ConstructorArgument(Key)]public ComponentResourceKey Key { get; set; }public LanguageExtensionBase(string key){Key new ComponentResourceKey(typeof(T), key);}public override object ProvideValue(IServiceProvider serviceProvider){if (Key null){throw new NullReferenceException(Key cannot be null at the same time.);}IProvideValueTarget provideValueTarget serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;if (provideValueTarget null){throw new ArgumentException(The serviceProvider must implement IProvideValueTarget interface.);}if (provideValueTarget.TargetObject?.GetType().FullName System.Windows.SharedDp){return this;}return new Binding(Value){Source new I18nSource(Key, provideValueTarget.TargetObject),Mode BindingMode.OneWay,Converter ResourceConverter}.ProvideValue(serviceProvider);}} 2、添加资源转换器 /// summary/// 资源转换器/// /summarypublic class ResourceConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){Bitmap val (Bitmap)((value is Bitmap) ? value : null);if (val null){Icon val2 (Icon)((value is Icon) ? value : null);if (val2 ! null){return ToBitmapSource(val2.ToBitmap());}return value;}return ToBitmapSource(val);}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){throw new NotSupportedException();}[DllImport(gdi32)]private static extern int DeleteObject(IntPtr o);public ImageSource ToBitmapSource(Bitmap bitmap){IntPtr ptr bitmap.GetHbitmap(); //obtain the HbitmapBitmapSource bitmapSource Imaging.CreateBitmapSourceFromHBitmap(ptr, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());DeleteObject(ptr); //release the HBitmapreturn bitmapSource;}} 3、创建资源文件 4、继承基类创建指定资源文件扩展 /// summary/// 多语言绑定扩展/// /summary[MarkupExtensionReturnType(typeof(object))]internal class LanguageExtension : LanguageExtensionBaseDefaultLanguage{public LanguageExtension(string key) : base(key){}} 5、添加资源文件管理 try {I18nManager.Instance.Add(Resource.ResourceManager); } catch (ArgumentException) { } 6、切换语言 var culture new CultureInfo(en-US); I18nManager.Instance.CurrentUICulture culture; System.Threading.Thread.CurrentThread.CurrentCulture culture; 7、使用 ①映射命名空间到XAML xmlns:Lanclr-namespace:SqlSugarTest.Lan ②资源文件中添加多语言资源 ③示例 GroupBox Header多语言测试Menu HeightNaN HorizontalAlignmentCenterVerticalAlignmentCenterBackground{x:Null}FontSize12 FontWeightBoldMenuItem Margin3 Padding10,8HorizontalAlignmentCenterHorizontalContentAlignmentCenterHeader{Lan:Language MultiLanguage}MenuItem Margin3 Padding10,5ClickMenuItem_Click_CN HeaderCN-中 /MenuItem Margin3 Padding10,5ClickButton_Click_EN HeaderUS-英 /MenuItem Margin3 Padding10,5HeaderTestMenuItem Margin3 Padding10,5Header111 /MenuItem Margin3 Padding10,5Header222 //MenuItem/MenuItem/Menu/GroupBox 8、后台使用多语言 ①获取多语言资源字符串 /// summary/// 获取Key资源/// /summary/// param namekey/param/// param nameresource/param/// returns/returnspublic static string GetString(string key, ResourceManager resource null){if (resource null)return DefaultLanguage.ResourceManager.GetString(key, I18nManager.Instance.CurrentUICulture);elsereturn resource.GetString(key, I18nManager.Instance.CurrentUICulture);} MessageBox.Show(GetString(nameof(DefaultLanguage.Test))); ②后台绑定 static readonly ResourceConverter converter new ResourceConverter();/// summary/// 按自定义数据绑定多语言/// /summary/// typeparam nameT自定义数据源/typeparam/// param namekey数据关键字/param/// returns/returnspublic static BindingBase GetBindingT(string key, object element null){var Key new ComponentResourceKey(typeof(T), key);return new Binding(Value){Source new I18nSource(Key, element),Mode BindingMode.OneWay,Converter converter};} menu_Test.SetBinding(MenuItem.HeaderProperty, GetBindingDefaultLanguage(nameof(DefaultLanguage.Test)));
http://www.hkea.cn/news/14370017/

相关文章:

  • 东莞网站建设美丽广州网页设计公司招聘
  • jsp手机版网站开发百度123123网址大全
  • 成都青羊区建设局网站南通高端网站设计开发
  • 陕西省建设厅证网站号多少企业vi设计说明
  • 建视频网站需要多大空间简洁大气网站设计
  • three.js 做的网站网站建设免费的服务器
  • 金华网站制作费用海南房地产网站建设
  • 宣城市建设监督管理局网站首页公司网站的seo优化
  • 广告设计哪个网站好优质做网站哪家好
  • 自己网站做搜索引擎优化网络销售有前途吗
  • 常见网站架构海外购物app排行榜前十名
  • 呼和浩特做网站的郑州市金水区
  • 网站设计的目的和功能怎么创建视频号
  • 网站开发人员需求分析建立网站需要多少钱怎么样
  • 最好的网站模版vps如何设置网站权限
  • 网站开发工作周记只会网站开发能创业吗
  • 网站域名备案认证千库网免费素材图库
  • 廊坊网站建设谷德设计网站
  • 图书网站建设方案广东微信网站开发哪家好
  • wordpress音乐网站网站后台内容管理系统
  • asp网站怎样做app微信卖水果链接网站怎么做
  • 网站300兆是多少网站建设公司织梦模板
  • 做网站如何获利企业营销系统和网站建设
  • 中国建设银行绑定网站四川网站建设scyiyou
  • WordPress网站封装app教程服务器类网站建设
  • 怎么用ps制作个人网站模板下载手机端网站设计尺寸
  • 天津专业网站建设公司俄罗斯局势最新消息
  • 公司的网站如何进行修改布局wordpress文章列表
  • 课程网站建设调研报告中国企业500强名单公布
  • 做网站一定要用服务器吗十大赚钱小程序