WPF中动态更新TextBlock文字中的超链接,文本
2015-11-03 08:56
316 查看
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类来显示网页的,后来因为自己采用的可变窗体,导致网页不能正常显示,因此只好自己
提取出文字和超链接进行显示了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
修改超链接的文本文字:
<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类来显示网页的,后来因为自己采用的可变窗体,导致网页不能正常显示,因此只好自己
提取出文字和超链接进行显示了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- android studio This client is too old to work with the working copy at
- 网格形变算法(Gradient-Based Deformation)
- Flux工作流
- 用JS编写日历的简单思路
- c++中的隐藏、重载、覆盖(重写)
- 每日一Vim(5)—— c命令
- CSS清除浮动的方法
- md5加密
- NSNumber
- C/C++高阶语法:函数指针及其应用,动态链接库,正向调用
- java synchronized详解
- 【软考】---软件测试
- 全功能智能车之概述(开始)(第一篇)
- 生成二维码
- 2015年11月3日技术日志的开篇
- 01-游戏实践目的计划
- VS2012怎么显示最近文件
- 一次对MKMapView的性能优化
- 【活动报名】欢迎参加”2015.11.15舟山群岛国际马拉松”科技跑团
- 屏幕适配问题