1.-------------------------------------------------------------------------

修改超链接的文本文字:

<TextBlock><Hyperlink>

<TextBlock  x:Name="TextBlockNeedChange" Text="改变的文本" />

</Hyperlink></TextBlock>

修改TextBlockNeedChange.Text="xxxxx"即可;

2.-----------------------------------------------------------------------

原文:WPF中动态更新TextBlock文字中的超链接

在写小软件的时候突然用到需要对显示的文字动态更新,然后里面还有超链接,在普通的winform里面好

像有Linklabel,但是wpf中没找到,反正看到有Textblock里添加超链接的例子,就尝试的改了下,但是对于

超链接的更新始终没找到好方法,偶然翻着MSDN找到了自己需要的例子,现在就记录下来方便自己以后查看

了!
    下面介绍在wpf工程中,首先通过XAML添加TextBlock控件以及超链接,而后在控制程序中动态更新文字

和超链接内容,遗憾是还没有达到动态的增加超链接个数,没有去尝试,应该也是可以的。
    (1)通过XAML添加TextBlock控件以及超链接
     wpf窗体中的Grid容器中给TextBlock划分出位置,然后拖入控件,下面是摘出的代码
<TextBlock Name="navigateTextBlock"

Margin="14,0,0,5" Grid.Row="1"

TextWrapping="Wrap"

Foreground="Yellow">    
         <Hyperlink Name="hyperlink0" Click="hyperlink0_Click"   NavigateUri="

http://www.qq.com" Foreground="Yellow"> 超链接www.qq.com</Hyperlink>
         <LineBreak ></LineBreak>
</TextBlock>
    这样在窗体中显示“超链接www.qq.com”,指向的地址www.qq.com。至于颜色和分隔线就没必要说了。
    (2)在控制程序中动态更新文字和超链接内容
    在控制程序中动态更新文字很简单,navigateTextBlock.Text="",就可以设置所需要的文本了;就是动

态更新超链接有点麻烦,但是只要你熟悉Hyperlink类,也是很简单的。在MSDN中对于Hyperlink 类有如下的

示例代码:
Paragraph parx = new Paragraph();
Run run1 = new Run("Text preceeding the hyperlink.");
Run run2 = new Run("Text following the hyperlink.");
Run run3 = new Run("Link Text.");

Hyperlink hyperl = new Hyperlink(run3);
hyperl.NavigateUri = new Uri("http://search.msn.com");

parx.Inlines.Add(run1);
parx.Inlines.Add(hyperl);
parx.Inlines.Add(run2);
可以看到对该类的使用,因此按照这种方式可以对TextBlock中的Hyperlink对象进行修改更新,如下
            Run runTextTemp=new Run (text );
            hpHost.Inlines.Clear();
            hpHost.Inlines.Add(runTextTemp);
            hpHost.NavigateUri = new Uri(hplink);
    写完了发现真的很简单,可是自己对这些都不太熟悉,第一次用都是现找,现学现用。其实最初自己只

是想直接通过Frame类来显示网页的,后来因为自己采用的可变窗体,导致网页不能正常显示,因此只好自己

提取出文字和超链接进行显示了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

WPF中动态更新TextBlock文字中的超链接,文本的更多相关文章

  1. Android中动态更新ListView(转)

    在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...

  2. 使用命令动态更新JAR包中的文件

    动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar  -tvf  gateway.jar  |  grep  topjui.config.js 二.在当前 ...

  3. WPF中动态加载XAML中的控件

    原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...

  4. 基于Python实现matplotlib中动态更新图片(交互式绘图)

    最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...

  5. spring security中动态更新用户的权限

    在程序的执行过程中,有时有这么一种需求,需要动态的更新某些角色的权限或某些人对应的权限,当前在线的用户拥有这个角色或拥有这个权限时,在不退出系统的情况下,需要动态的改变的他所拥有的权限. 需求:张三 ...

  6. Android中动态更新TextView上的文字

    示例代码: 1.新线程,定时更新文字 class testThread extends Thread{ public void run() { Message message = new Messag ...

  7. JS动态更新微信浏览器中的title

    问题: 最近在做一个微信中分享的宣传页,分不同的场景,切换不同的场景时需要设置不同的title,实现的方案很简单,当用户切换场景的时候,修改document对象的title属性,可是在实际测试中,io ...

  8. ASP.NET程序中动态修改web.config中的设置项目(后台CS代码)

    using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Dra ...

  9. 分别在javascript和JSP中动态设置下拉列表默认值

    一.JavaScript中动态设置select标签中<option>选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 ...

随机推荐

  1. Mac OSX下面的博客客户端Marsedit使用

       在windows下面,有一个很好用的博客客户端,叫做windows live writer,不得不感叹,其所见即所得的方面真的是很方便,特别是还可以方便的把word上的内容直接帖上去,包括文件中 ...

  2. php版权重轮询调度算法

    2013-09-25 <?php class WeightedRoundRobin { private static $_weightArray = array(); private stati ...

  3. JavaSctipr 兼容、技巧、牛角尖

    关于JavaSctipt的兼容性,最懒的办法就是用jQuery的工具函数.尽量不要用那些什么ECMAScript之类的函数,因为很多浏览器都会报找不到函数的错误.下面列出一些在开发过程中碰到过的jav ...

  4. 认识元数据和IL(上) <第三篇>

    说在,开篇之前 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有<第一回:恩怨情仇:is和as>那么 ...

  5. Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...

  6. 用来控制 XML 序列化的属性

    通过将下表中的属性应用于类和类成员,可以控制 XmlSerializer 序列化或反序列化该类的实例的方式.若要了解这些属性如何控制 XML 序列化,请参见使用属性控制 XML 序列化. 这些属性还可 ...

  7. Min Stack 解答

    Question Design a stack that supports push, pop, top, and retrieving the minimum element in constant ...

  8. 解决 VM虚拟机网卡无法拉起 的问题

    复制虚拟机后,第二块网卡始终无法正常运作,表现为无法自动获得dhcp地址,且重启后与第一块网卡使用同样的地址,让人苦笑不得,反复重启了很多次都是这样,后面想到ifcfg-eth1的配置文件可能写得太简 ...

  9. java模拟get/post提交

    1:用jdk连接 String action = "xxxxxxxxxxx": URL url = new URL(action); HttpURLConnection http ...

  10. Cocos2d-x v3.0正式版尝鲜体验【1】 环境搭建和新建项目

    Cocos2d-x v3.0在前天最终公布正式版了,等了大半年最终出来了.一直没去碰之前的3.0各种beta,rc版本号,就想等正式版出来再尝试. 昨天也參加了触控科技在成都举办的沙龙活动.看到作者王 ...