制作一个可以换行显示的HyperLink

前段时间在一个DataGrid中加入Hyperlink后,发现文字太长,会显示不完整。原来Hyperlink默认是不会换行显示的,于是动手改一下默认的样式,让Hyperlink可以自动换行。

 

先从这里Copy默认的样式到Styles.xaml文件中: http://msdn.microsoft.com/zh-cn/library/cc296242(VS.95).aspx

 

从默认样式中,会发现,只要修改其中的TextBlock,加上TextWrapping="Wrap" 就可以了。修改后的样式如下:

<TextBlock
                          x:Name="NormalTextBlock"
                          Text="{TemplateBinding Content}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          Margin="{TemplateBinding Padding}"
                          Visibility="Visible" TextWrapping="Wrap" />
<TextBlock
                          x:Name="UnderlineTextBlock"
                          Text="{TemplateBinding Content}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          Margin="{TemplateBinding Padding}"
                          TextDecorations="Underline"
                          Visibility="Collapsed" TextWrapping="Wrap" />
<TextBlock Canvas.ZIndex="1"
                          x:Name="DisabledOverlay"
                          Text="{TemplateBinding Content}"
                          Foreground="#FFAAAAAA"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          Margin="{TemplateBinding Padding}"
                          Visibility="Collapsed" TextWrapping="Wrap" />

为DataGrid中的Hyperlink应用样式,运行后,发现有重影的问题,删除样式中的 ContentPresenter 部分就可以了。

 

BTW,记得要设置DataGrid中的宽度,不然就没有意义了。

转载于:https://www.cnblogs.com/seaworm/archive/2010/12/09/1901487.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值