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. [py]使用字典get方法做数据统计

    s = "aabbccc" d = {} for i in s: if i in d: d[i] += 1 else: d[i] = 0 for i in s: d[i] = d. ...

  2. 2018-2019-1 20189203 《Linux内核原理与分析》第七周作业

    第一部分 实验 增加fork命令,运行MenuOS 如下: 设置断点: 跟踪调试过程: 停在的do_fork()的位置上 停在copy_process 停在dup_task_struct 停在copy ...

  3. nodejs 癞子麻将

    'use strict'; var _ = require('lodash'); var quick = require('quick-pomelo'); var P = quick.Promise; ...

  4. IO流的总结(二)

    缓冲字节流: 我们先说一下缓存区的概念: 缓冲区就好比一辆车,一车一车的把数据拉走,这样就效率快多了 按照流的方向分类: 写入数据到流中,字节缓冲输出流 BufferedOutputStream 读取 ...

  5. HDU 1260

    Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a ...

  6. day09 python之函数进阶

    楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print ...

  7. Centos7 Firewall 防火墙配置应用实例参考(转)

    时间:2016-06-02 02:40来源:linux.it.net.cn 作者:IT   简单的配置,参考学习:--permanent  当设定永久状态时 在命令开头或者结尾处加入此参数,否则重载或 ...

  8. scanperiod 不生效

    注意:要改 target 目录下的,真正运行时加载的 logback-spring.xml

  9. 【题解】Luogu P3931 SAC E#1 - 一道难题 Tree

    原题传送门 题目几乎告诉你要用最大流 先进行搜索,将树的叶子节点都连到一个虚拟点T上,流量为inf(这样不会干扰到前面部分的最大流) 其他边按树的形态连边,以根节点为S,跑一变最大流即可求出答案 #i ...

  10. JS设计模式(4)迭代器模式

    什么是迭代器模式? 定义:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示. 主要解决:不同的方式来遍历整个整合对象. 何时使用:遍历一个聚合对象. 如何解决:把在元素之间游 ...