改行表示できるHyperLinkを作成します.

2329 ワード

この間、DataGridにHyperlinkを入れたら、文字が長すぎて、不完全な表示が出てきました.Hyperlinkはデフォルトでは改行表示されませんので、デフォルトのスタイルを変更して、Hyperlinkを自動的に改行させます.
 
まずここのCopyのデフォルトのスタイルからスタイル.xamlファイルの中まで:http://msdn.microsoft.com/zh-cn/library/cc296242(VVS.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アプリケーションのスタイルです.運転後、ゴーストの問題があります.スタイル中のContit Presenterの部分を削除すればいいです.
 
BTWは、DataGridの幅を設定してください.でないと意味がありません.