想学wp编程,c#xaml和Silverlight到底是什么关系

想学wp编程,c#xaml和Silverlight到底是什么关系,第1张

1、概念问题:

xaml是微软根据xml升级的一种标记语言 , Sliverlight、WPF、WP是微软提供的开发技术。

2、关系:

传统的Winform开发是直接拖控件的,控件属性都在后台代码中来定义。

新型的WPF开发是分离了页面和后台逻辑的,也叫MVVM模式, 前端使用xaml来控制,后端使用c#, 所以可以将xaml与WPF的关系,可以看做css与网页。

WPF刚推出时是非常成功的(即win7初期), 所以后来微软想推一套通用的网页技术,即SliverLight。

SliverLight开发不同于传统网页使用JS CSS等,而是使用了和WPF一样的xaml语言进行前端控制。 所以可以说银光和WPF在开发上相似度达到90%,只不过一个是网站,一个是程序。

再后来的WP也是一样的。

但是由于微软战略失误,导致WPF 银光 WP的推广都半途而废了,导致这三个技术目前都不算是特别热门。

可以通过将 WebBrowser (WebView)控件托管在应用程序中并使用其 Source 属性或 Navigate(Uri) 方法更改该控件的位置来实现该 *** 作。警告: 默认情况下,脚本在 WebBrowser 控件中处于禁用状态。如果您想在控件中启用脚本,请将 IsScriptEnabled 属性设置为 true。以下代码示例显示如何从 ", UriKind", UriKind.Absolute)或者,也可以使用 WebBrowser(WebView)类的 Navigate(Uri) 方法来实现该目标:Wp8:webBrowser1.Navigate(new Uri("", UriKind.Absolute))Win8:webView.Navigate(new Uri("", UriKind.Absolute))如果您选择调用方法而不是设置属性,那么请记住,如果WebBrowser控件尚不在可视化树中,则会引发 InvalidOperationException。为了避免这个问题,您可以向 Loaded 事件附加一个处理程序,以确保在调用该方法之前此控件位于可视化树中。.Loaded += (object sender, RoutedEventArgs e) =>{webBrowser1.Navigate(new Uri("", UriKind.Absolute))} webView1.Loaded += (object sender, RoutedEventArgs e) =>{webView1.Navigate(new Uri("", UriKind.Absolute))}2. 显示静态 Web 内容您可以使用 WebBrowser (WebView)控件在应用程序中显示已设置格式的静态内容。例如,开发人员可能希望在应用程序包中包含帮助文本,以便用户可以随时访问。或者,您也可以使用 WebBrowser (WebView)控件显示应用程序已使用 SaveToString() 方法保存到独立存储的静态 Web 内容。向项目中添加静态内容向项目中添加静态内容的步骤1. 使用以下 HTML 代码创建一个名为 readme.htm 的 HTML 文件:Sample Readme Content2. 在 Visual Studio 中打开一个新的或现有的解决方案。3. 在“解决方案资源管理器”中,右键单击您项目的名称,单击“添加”,然后单击“现有项”。4. 导航到 readme.htm 文件的位置,选择该文件,然后单击“添加”。5. 在“解决方案资源浏览器”中,单击该文件的名称。确认“属性”窗口中的“生成 *** 作”部分。添加命名空间在页面后台代码中添加以下资源以包含以下命名空间。例如,如果您对主页使用默认命名约定,则应更新 MainPage.xaml.cs。using System.IO.IsolatedStorageusing System.IOusing System.Windows.Resources添加 WebBrowser(WebView)控件可以使用工具添加 WebBrowser (WebView)控件,也可以手动添加 WebBrowser (WebView)控件。使用工具添加 WebBrowser(WebView)控件使用工具添加 WebBrowser (WebView)控件的步骤1. 在 Visual Studio 中打开一个新的或现有的解决方案。2. 查看项目的 XAML 文件时,单击“工具箱”,将 WebBrowser (WebView)控件拖动到设备的图像中。手动添加 WebBrowser(WebView)控件在 XAML 中创建 WebBrowser (WebView)控件的步骤1. 打开将在其中添加 WebBrowser (WebView)控件的页面的 XAML 文件。在“解决方案资源浏览器”中,右键单击该页面的 .xaml 文件(默认情况下,新应用程序的主页名为“MainPage.xaml”),然后选择“打开”。2. 在 ContentGrid 中添加一个 WebBrowser (WebView)控件。例如:Wp8:Win8:添加向独立存储中添加文件的代码修改页面后台代码以包含以下两个函数,这两个函数将帮助向独立存储中添加静态文件。例如,如果您对主页使用默认命名约定,则应更新 MainPage.xaml.cs。private void SaveFilesToIsoStore(){//These files must match what is included in the application package,//or BinaryStream.Dispose below will throw an exception.string[] files = {"readme.htm"}IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()if (false == isoStore.FileExists(files[0])){foreach (string f in files){StreamResourceInfo sr = Application.GetResourceStream(new Uri(f, UriKind.Relative))using (BinaryReader br = new BinaryReader(sr.Stream)){byte[] data = br.ReadBytes((int)sr.Stream.Length)SaveToIsoStore(f, data)}}}} private void SaveToIsoStore(string fileName, byte[] data){string strBaseDir = string.Emptystring delimStr = "/"char[] delimiter = delimStr.ToCharArray()string[] dirsPath = fileName.Split(delimiter)//Get the IsoStore.IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()//Re-create the directory structure.for (int i = 0i <dirsPath.Length - 1i++){strBaseDir = System.IO.Path.Combine(strBaseDir, dirsPath[i])isoStore.CreateDirectory(strBaseDir)}//Remove the existing file.if (isoStore.FileExists(fileName)){isoStore.DeleteFile(fileName)}//Write the file.using (BinaryWriter bw = new BinaryWriter(isoStore.CreateFile(fileName))){bw.Write(data)bw.Close()}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11755112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存