WPF中动态更新TextBlock文字中的超链接,文本
1.-------------------------------------------------------------------------
修改超链接的文本文字:
<TextBlock><Hyperlink>
<TextBlock x:Name="TextBlockNeedChange" Text="改变的文本" />
</Hyperlink></TextBlock>
修改TextBlockNeedChange.Text="xxxxx"即可;
2.-----------------------------------------------------------------------
在写小软件的时候突然用到需要对显示的文字动态更新,然后里面还有超链接,在普通的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文字中的超链接,文本的更多相关文章
- Android中动态更新ListView(转)
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...
- 使用命令动态更新JAR包中的文件
动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar -tvf gateway.jar | grep topjui.config.js 二.在当前 ...
- WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...
- 基于Python实现matplotlib中动态更新图片(交互式绘图)
最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...
- spring security中动态更新用户的权限
在程序的执行过程中,有时有这么一种需求,需要动态的更新某些角色的权限或某些人对应的权限,当前在线的用户拥有这个角色或拥有这个权限时,在不退出系统的情况下,需要动态的改变的他所拥有的权限. 需求:张三 ...
- Android中动态更新TextView上的文字
示例代码: 1.新线程,定时更新文字 class testThread extends Thread{ public void run() { Message message = new Messag ...
- JS动态更新微信浏览器中的title
问题: 最近在做一个微信中分享的宣传页,分不同的场景,切换不同的场景时需要设置不同的title,实现的方案很简单,当用户切换场景的时候,修改document对象的title属性,可是在实际测试中,io ...
- ASP.NET程序中动态修改web.config中的设置项目(后台CS代码)
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Dra ...
- 分别在javascript和JSP中动态设置下拉列表默认值
一.JavaScript中动态设置select标签中<option>选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 ...
随机推荐
- IOS深入学习(4)之Coordinate System
1 前言 在IOS中相信大家会经常跟一些bounds,frame之类的打交道,这不免会涉及坐标系统,今天我们就来介绍一下Coordinate System(坐标系). 2 详述 坐标系统是定位,大小, ...
- kibana 版本kibana-4.3.1 修改地图
进入到安装目录下的src/ui/public/vislib/visualizations/目录 1.编辑_map.js文件 1 2 //url: 'https://otile{s}-s.mqcdn.c ...
- printf "%.*s" 分类: 小细节 2015-07-04 14:36 2人阅读 评论(0) 收藏
ref : http://www.cnblogs.com/yuaqua/archive/2011/10/21/2219856.html 小数点.后"*"表示输出位数,具体的数据来自 ...
- hadoop1.2.1+hbase0.90.4+nutch2.2.1+elasticsearch0.90.5配置(伪分布式)
系统:ubuntu14.04 一.hadoop安装 ssh免密码登陆详情见上一篇博客. 解压hadoop1.2.1到某个目录下,这里解压到ubuntu下载目录下(注意没必要使用管理员权限) 在hado ...
- 【LeetCode练习题】Pow(x, n)
Pow(x, n) Implement pow(x, n). 计算x的n次方. 解题思路: 考虑到n的值会很大,而且可为正可为负可为0,所以掉渣天的方法就是用递归了. 对了,这题也在<剑指off ...
- [置顶] 教你如何搭建RobotFramework环境
看到这篇文章的朋友,相信已经知道RobotFramework是干什么的了,我这里就不再赘述了. 搭建步骤: 1. 下载安装Python,下载地址http://www.python.org/getit/ ...
- UIView 弹出动画
// 展开动画 - (void)beginAnimations { CGContextRef context = UIGraphicsGetCurrentContext(); [UIView begi ...
- 【技术文档】《算法设计与分析导论》R.C.T.Lee等·第5章 树搜索策略
计算机中许多问题的解空间可以用一棵树来表示,最优解就在树中的一个分支上,因此,我们在解这类问题时可以采用树搜索策略,最经典的问题包括0/1背包问题.旅行商问题.哈密顿回路问题,还有8数码问题(就是我们 ...
- java学习笔记day03
1.二维数组,即一维护 int[][] arr1 = new int[3][2]; int[][] arr2 ={{2,4,3,6,22,7},{3,6,8,9},{10,13,24,5}}; pub ...
- C#中对输出格式的初始化
一.在输出的时候,\t和8个空格是不一样的,\t是跳转到下一个水平制表符,如果你在第一个水平制表符中写有数据123,那么跳转后跳转到9的位置上,中间只有5个空格,但是如果用8个空格来做分割的话,就会有 ...