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

商业网站的创建程序手机网站头部图片怎么做

商业网站的创建程序,手机网站头部图片怎么做,如皋建设局网站,设计建网站目录 一、多语言切换#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/14545483/

相关文章:

  • 珠海营销型网站建设公司wordpress列表翻页有page
  • 玉山网站建设视频网站建设的意义论文
  • 交通运输网站建设的方案园林景观设计公司做抖音推广
  • 做网站知识点重庆网站优化seo公司
  • 上海企业网站建设补贴网站如何做api接口
  • 做网站项目前怎么收集需求成都平面设计公司排行
  • 网络运营推广培训课程苏州网站建设网站优化
  • 外贸seo网站建站做木业网站怎样起名
  • 郑州网站开发便宜帝国cms导航模板
  • 网站上的弹框如何做网页网页与网站的关系
  • 暗网做网站免费做团购网站的软件
  • 网站开发手册下载代码网站怎么制作
  • 建设银行登录网站python做网站吗
  • 设计社交网站腾讯云手动搭建wordpress个人站点
  • 律师网站建设模板关键词优化报价
  • 建设网站要做的工作wordpress免费
  • 网站开发综合设计报告成全视频免费观看在线看第6季
  • 小程序定制开发网站app开发程序
  • 营销型网站需要注意专业制作标书
  • 高端网站建设费用预算网站seo优化有哪些
  • 网站视频主持人制作网站的分类有哪些
  • 建立本地网站小程序网站开发怎么样
  • 深圳家具网站建设安卓手机app开发教程
  • 通化网站推广做电商一个月能挣多少钱
  • 怎么做网站快照做网站还有意义
  • 自助建站管理平台在哪里找手机网站建设公司
  • 深圳集团网站开发wordpress 添加媒体
  • 沈阳建站程序华泰保险公司官方网站电话
  • 企业自己做网站的成本泰安人才网最新消息
  • 企业网站 合同大学网站建设目标