在WPF中创建超链接文本,同样有两种方式,一种是在XAML文件中,使用标记语言创建,这是最简单也是最常用的创建方式;另外一种是使用代码创建,这种方式比较少见,而且比较复杂,但是对于需要动态创建或者需要根据不同的条件显示不同的超链接文本的情况下,是必须的。

下边就主要讲一下这两种创建方式

1.使用标记语言创建(XAML)

<TextBlock ><Hyperlink FontSize="20" MouseEnter="Hyperlink_MouseEnter"
         Foreground="#FF20D18D" MouseLeave="Hyperlink_MouseLeave" Click="Hyperlink_Click"><Textblock Text = "this is a hyperlink"></Textblock>
    </Hyperlink>
</TextBlock>

默认情况下,鼠标未选中超链接文本时,文字颜色为蓝色,鼠标选中时,文字颜色为红色,可以通过触发MouseLeave和MouseEnter事件,通过修改Foreground的颜色来进行自定义

本文修改了超链接文本无法动态绑定的问题,超链接文本一般是要求显示写出,但是很多情况超链接文本可能需要上下文的内容决定,或者绑定一个对象的属性等,这时候可以将超链接文本保存至一个textblock标签中,通过绑定textblock就可以实现动态改变超链接的文本值。

2.使用代码实现

        private void addHyperLinkLineHeader(string lineName){TextBlock LineName = new TextBlock();//定义textblock标签LineName.Margin = new System.Windows.Thickness(100, 50, 0, 0);LineName.Foreground = System.Windows.Media.Brushes.White;LineName.FontSize = 14;Run run1 = new Run(lineName);//定义流元素Hyperlink link = new Hyperlink();//定义超链接文本标签link.Foreground = System.Windows.Media.Brushes.White;//设置超链接文本的字体颜色link.Inlines.Add(run1);//将流元素添加到超链接文本中LineName.Inlines.Add(link);//将超链接文本添加到流元素中link.MouseEnter += new MouseEventHandler(link_MouseEnter);//为超链接文本添加鼠标进入触发事件link.MouseLeave += new MouseEventHandler(link_MouseLeave);//为超链接文本添加鼠标离开触发时间link.Click += new RoutedEventHandler(link_Click);//为超链接文本添加鼠标单击事件linesStackP.Children.Add(LineName);}

对应的MouseEnter与MouseLeave事件处理程序,以及单击事件:

        private void link_MouseEnter(object sender, MouseEventArgs e){Hyperlink link = (Hyperlink)e.OriginalSource;link.Foreground = System.Windows.Media.Brushes.Red;}private void link_MouseLeave(object sender, MouseEventArgs e){Hyperlink link = (Hyperlink)e.OriginalSource;link.Foreground = System.Windows.Media.Brushes.White;}private void link_Click(object sender, RoutedEventArgs e){Hyperlink link = (Hyperlink)e.OriginalSource;InlineCollection ilineName = link.Inlines;Run line = (Run)ilineName.FirstInline;string str = line.Text;}
有关流文件,参考<a target=_blank href="https://technet.microsoft.com/zh-cn/office/aa970909.aspx">https://technet.microsoft.com/zh-cn/office/aa970909.aspx</a>
 
 

WPF-创建超链接文本相关推荐

  1. python在文本添加超链接_Python将超链接文本打印到Spyder控制台(Python print hyperlinked text to Spyder Console)...

    Python将超链接文本打印到Spyder控制台(Python print hyperlinked text to Spyder Console) 我在Windows 7上使用WinPython发行版 ...

  2. Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址

    推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...

  3. Excel 2010 VBA 入门 064 按照关键字批量创建超链接

    目录 示例 实现代码 Hyperlink对象 创建超链接 删除超链接及访问超链接 创建超链接打开指定的宏代码 示例 如图所示,该表为某公司资产负债表以及关于报表的说明.为了方便阅读,现希望能够用VBA ...

  4. python word 创建超链接

    import docx from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.ns import qn from docx.shar ...

  5. POI PPT 给段落创建超链接

    public static void creatLinks(XMLSlideShow pptShow) {XSLFSlide firstSlide = pptShow.getSlides().get( ...

  6. excel2016html,如何在excel2016表格中创建超链接?

    相信大家在查看Excel文档时,会遇到需要跳转其他页面去观看数据的情况,那如何在excel2016表格中创建超链接?下面感兴趣的小伙伴就和小编一起来学习一下吧! excel2016表格的超链接制作方法 ...

  7. 第九章 在网页中创建超链接

    9.1 创建超链接 创建超链接使用的标记是<a> 超链接要能正确地进行链接跳转,需要同时存在两个端点 源端点 =>网页中提供链接单击的对象 =>如链接文本或链接图像 目标端点 ...

  8. HTML超链接的作用是什么,什么是超链接,有什么作用,如何创建超链接

    www.xyzshouji.com 小宇宙 最简单的超链接代码包含了指向的目标,可以是一个网站首页的地址,一个网站内页的地址. 另外还包含了超链接的显示样式,可以是一段文字,一张图片或者其它HTML的 ...

  9. windows文本缩放影响mfc对话框_PhotoShop创建金属文本提示技巧

    创建一个新文件:在File菜单下,选择New.在出现的"新建文件"对话框中,输入以下值: 宽度:4英寸 高度:1英寸 分辨率:Web文本为72:300用于打印 模式:RGB颜色 内 ...

  10. [翻译] DTCoreText 从HTML文档中创建富文本

    DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵 ...

最新文章

  1. maven学习(3)
  2. 封闭期5年的基金属于什么基金?
  3. w8的计算机管理打不开,Win8.1系统打不开控制面板怎么办 win8.1无法打开控制面板如何解决...
  4. vim配置运行python3快捷键_Linux VIM8 Python3 编辑器配置文件
  5. 【C++/Python 双语言实现】Luogu5092 Cube Stacking
  6. 【LISTENER】使用“alter system register;”解决动态监听注册缓慢问题
  7. cad怎么画立体图形教学_cad怎么绘制三维图形,cad三维制图实例图文教程
  8. 一文读懂《理解未来的7个原则》
  9. 【IoT】 产品设计之结构设计:材料工艺选择及特点(PP、PVC、PE、PS、ABS、PC)
  10. Junos SRX NAT介绍
  11. funny pics
  12. JS实现将数字金额转换为大写人民币汉字
  13. 【读书笔记】减法——完美无缺,不是增无可增,而是减无可减
  14. linux下route路由设置命令详解
  15. 微信提现功能测试点【杭州多测师】【杭州多测师_王sir】
  16. 【fairy】实验吧——看起来有点难
  17. 第六十七章 SQL命令 ROLLBACK
  18. 2021年危险化学品生产单位主要负责人考试试卷及危险化学品生产单位主要负责人作业模拟考试
  19. Intel Neural Compute Stick 2代部署步骤
  20. 【第十七届智能车】智能车图像处理(5)-元素识别(斑马线、车库)

热门文章

  1. 【二维码识别】基于matlab GUI 灰度+二值化+校正QR二维码识别与生成【含Matlab源码 600期】
  2. 【裂缝识别】基于matlab GUI路面裂缝识别(带面板)【含Matlab源码 009期】
  3. 学习自动驾驶技术 学习之路_一天学习驾驶
  4. PyTorch 中两大核心转置函数 transpose() 和 permute()(类似numpy的交换维度、转置)
  5. torch.utils.data random_split
  6. sql 找不到oracle接口,sql-server – sql server链接服务器到oracle返回数据存在时找不到的数据...
  7. 实验四------实验十二
  8. 软考 2015年下半年卷 错题知识点记录
  9. “导航技术”学习笔记
  10. KB:Office 365 MX验证出错OWA 打开后Http 404