WebView控件

使用WebView控件可以在应用中添加一个简易的网页浏览器窗口,将指定地址的网页内容显示出来,并可以通过WebView控件所提供的方法、属性及事件,实现如页面导航、HTML文本解析等操作。

在XAML文件中,WebView控件的用法如下所示:

<WebView .../>

下面介绍一下WebView控件的几个常用属性:

  • Name属性,获取或设置WebView控件的名称。
  • Source属性,获取或设置在WebView控件中打开的URI地址。

介绍完常用属性后,接着来看一下WebView控件的常用方法:

  • NavigateToString方法,显示指定的HTML字符串内容。
  • Navigate方法,显示指定URI地址的网页内容。

下面首先通过一个简单的示例来介绍如何使用WebView控件解析一段HTML文本并显示。

(1)HTML文本解析

新建一个名为"ShowHtmlDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件的Grid元素中使用如下代码添加一个WebView控件。

<WebView Name="ShowHtml" HorizontalAlignment="Left" Height="100" Width="200" Margin="348,134,0,0" VerticalAlignment="Top"/>

代码中添加了一个WebView控件并设置其Name属性值为ShowHtml,Height属性和Width属性的值为100,HorizontalAlignment属性的值为Left,VerticalAlignment属性的值为Top。

打开MainPage.xaml.cs文件在OnNavigatedTo方法中,定义一个HTML字符串,接着使用此字符串作为参数,调用WebView控件实例ShowHtml的NavigateToString方法,代码如下所示:

protected override void OnNavigatedTo(NavigationEventArgs e)

{

string htmlString = "<html><head></head><body><h4>WebView控件文本解析</h4><div style='font-family:FangSong'>使用WebView控件解析HTML文本</div></body></html>";

ShowHtml.NavigateToString(htmlString);

}

上面的代码定义了一个string类型的变量htmlString,用于存储一段HTML文本,然后以变量htmlString作为参数调用ShowHtml的NavigateToString方法,将HTML文本解析并显示在界面的WebView控件中。

运行程序,在界面的WebView控件中将显示解析完成的网页内容,效果如图4-29所示。

除了为WebView控件提供需要解析并显示的HTML文本外,还可以直接为WebView控件提供一个网络URI地址,通过对网络URI地址的访问获取需要显示的HTML文本信息,接下来通过一个简单示例演示这一过程。

(2)网页浏览

新建一个名为"ShowWebDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件中添加一个WebView控件,代码如下所示:

<WebView Name="ShowWeb" HorizontalAlignment="Left" Height="120" Width="320" Margin="348,134,0,0" VerticalAlignment="Top"/>

上面的代码设置了WebView控件的Name属性值为ShowWeb,Height属性的值为120,Width属性的值为320,HorizontalAlignment属性的值为Left,VerticalAlignment属性的值为Top。

在MainPage.xaml.cs文件的OnNavigatedTo方法中,定义一个Uri地址,并使用此Uri地址作为参数,调用WebView控件所提供的Navigate方法将地址页面显示出来,代码如下所示:

protected override void OnNavigatedTo(NavigationEventArgs e)

{

Uri targetUri = new Uri("http://www.microsoft.com");

ShowWeb.Navigate(targetUri);

}

上面的代码定义了一个Uri类的对象targetUri并实例化此对象为http://www.microsoft.com,然后把targetUri对象作为ShowWeb.Navigate方法的参数,将地址内容显示在WebView控件中。

运行程序,在界面上的WebView控件中将显示微软官方网站的主页面,如图4-30所示

图4-29 使用WebView控件显示HTML字符串 图4-30 使用WebView控件显示网页内容

Win10系列:C#应用控件基础18的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  3. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  4. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  5. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  6. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  7. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  8. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  9. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

随机推荐

  1. repo常用命令及常见问题汇总

    1.执行repo命令的时候,总是显示“project xx no found” 解决: (1)先执行“repo forall -c pwd” 显示所有project的路径,按照这个来写project参 ...

  2. ionic3 在ios9.0 系统下 会出现ReferenceError:Can't find variable:Intl 错误提示

    ionic3 框架开发app  在ios 9.0版本中 ReferenceError:Can't find variable:Intl 错误提示: 在index.html 文件中添加 <scri ...

  3. Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错

    解决办法 根据报错信息 , 去查看官方手册 在settings.py文件夹加入DATABASES['OPTIONS']['init_command'] = "SET sql_mode='ST ...

  4. ASP.NET页面之间传值的方式之Application(个人整理)

    Application  Application变量在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中对它进行存取.它和Session变量的区别在于,前者是所有的用户共用 ...

  5. np.meshgrid()用法+ np.stack()用法

    A,B,C,D,E,F是6个网格点,坐标如图,如何用矩阵形式(坐标矩阵)来批量描述这些点的坐标呢?答案如下 这就是坐标矩阵——横坐标矩阵X XX中的每个元素,与纵坐标矩阵Y YY中对应位置元素,共同构 ...

  6. K8S学习笔记之k8s日志收集实战

    0x00 简介 本文主要介绍在k8s中收集应用的日志方案,应用运行中日志,一般情况下都需要收集存储到一个集中的日志管理系统中,可以方便对日志进行分析统计,监控,甚至用于机器学习,智能分析应用系统问题, ...

  7. 王之泰201771010131《面向对象程序设计(java)》第八周学习总结

    第一部分:理论知识学习部分 第六章 第六章知识点主要分为1. 接口 2. lambda表达式 3. 内部类 4. 代理 1. 接口 1) Java为了克服单继承的缺点,Java使用了接口, 一个类可以 ...

  8. java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

    运行servler报错 java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory 或 java.lan ...

  9. How to fix TFS workspace mapping error in Jenkins

    Once you had update in TFS workspace for Jenkin TFS plugin, you might get error like bellow: [worksp ...

  10. JAVA中字符串比较equals()和equalsIgnoreCase()的区别

    1.使用equals( )方法比较两个字符串是否相等(区分大小写) 2.使用equalsIgnoreCase( )方法比较两个字符串是否相等(不区分大小写) boolean equalsIgnoreC ...