制作一个可以换行显示的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中的宽度,不然就没有意义了。

你可能感兴趣的:(perl)