もくじ(WinUI3関連)
やりたいこと
以前の記事で、WinUI3で下記のようなリンクを作りたくていろいろ試した。
そのときは、<HyperlinkButton>
を使って無理くり実現したのだが、その後試していると、うまくいかないところが出てきた。(文字列が長くなってテキストを折り返したいなと思ったときに、うまく折り返してくれない等。)
で、改めてWinUI3 ギャラリーを見直すと、もっと簡単に、もっとちゃんとできる、よさげな奴があったので試す。
前提
- VisualStudio2022 Community 17.3.0
- WinUI3.0
- Windows App SDK 1.1.2
- 2022年8月の時点で調査実施
やり方
<RichTextBlock>
を使う。
サンプルコード
<Window
x:Class="InlineLinkTextJikken.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:InlineLinkTextJikken"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<RichTextBlock>
<Paragraph>
ご意見・ご感想は
<Hyperlink NavigateUri="https://www.google.com">こちら</Hyperlink>
まで。
</Paragraph>
</RichTextBlock>
</Window>
動かしたところ。
ちゃんとマウスオーバーしたら矢印の形が変わるし、Tabを押したらリンクの部分にフォーカスが合う。
長い文章だったとしても、標準で端で折り返してくれる。
今回は、特に飾りっ気のない文言にしたが、
やろうと思えば、<Run>
を使って文章の一部のフォントを変えたり、選択した部分の色を指定したりできる様子。
その辺は、WinUI3ギャラリーを参照。
参考
無理やり実現しようとして妙なことをしてる自分の記事。
WinUI3 ギャラリーのRichTextBlock
のページのコード。