Csharp/C#教程:我可以在运行时更改Silverlight的浏览器外设置吗?分享


我可以在运行时更改Silverlight的浏览器外设置吗?

我有一个代码库,可以在各种配置中安装OOB SL5应用程序。 根据运行时的配置(由init参数选择),我想在执行安装之前更新OOB设置(标题,窗口标题)。 似乎唯一的方法是在编译时通过OutOfBrowserSettings.xml文件(或项目设置UI)。 我错过了什么,或者这只是它的方式?

根据MSDN,你可以做到这一点。

要在不重新编译的情况下为浏览器外支持配置现有应用程序,请将配置XML添加到现有.xap文件中的清单中。 为此,请将Deployment.OutOfBrowserSettings属性元素从以下示例代码复制到清单文件中,然后更新值。

作为设计器的替代方法,您可以通过填充清单模板(Properties或My Project文件夹中的AppManifest.xml)来指定浏览器外设置,如以下示例所示。 默认情况下,构建使用清单模板生成应用程序清单。 但是,模板XML在Visual Studio中使用起来更简单。

来源: http : //msdn.microsoft.com/en-us/library/dd833073(v = vs.95).aspx

请记住,* .xap文件是一个简单的zip。 因此,您可以提取,修改,然后再次压缩它。 看起来很简单,自动化。

你也可以在运行时更改应用程序的标题(我不知道如何更改图标或描述,但我认为woulndt无论如何都有意义)通过实现自己的chrome窗口。 对于示例实现,请遵循此

要本地化标题,您必须将标题的值更改为绑定,并将其绑定到您的资源(所有代码都是来自上面链接的示例项目的一些自定义):

MainPage.xaml中:

                        

添加了文件ResourceMock.cs:

  public class ResourceMock:INotifyPropertyChanged { public string Title { get { MessageBox.Show(Thread.CurrentThread.CurrentCulture.Name); switch (Thread.CurrentThread.CurrentCulture.Name) { case "en-GB": return "English"; break; case "pl-PL": return "Polish"; break; default: return "default"; break; } } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } public void firePropertyChanged(string property) { OnPropertyChanged(property); } } 

MainPage.xaml.cs中:

 public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); if (App.IsRunningOOBWithPermission) { txtInfo.Text = "You are running outside Browser Window."; } else { txtInfo.Text = "You are running inside Browser Window."; } } private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { var cultrue = (e.AddedItems[0] as ComboBoxItem).Content.ToString(); try { Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultrue); var res = App.Current.Resources["resxWrapper"] as ResourceMock; res.firePropertyChanged("Title"); } catch(Exception ex) { MessageBox.Show(ex.ToString()); } } } 

App.xaml中:

      

这是一个非常简单的示例,表明您可以在运行时更改标题。 我在假设,如果您将标题暴露为可绑定属性,那么您将知道如何实现自己的本地化。

要使上述示例正常工作,您需要在项目文件(* .csproj)中将“en-GB; pl-PL”添加到SupportedCultrues标记。

上述就是C#学习教程:我可以在运行时更改Silverlight的浏览器外设置吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987563.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐