2017-01-13 4 views
0

私はUWPアプリケーションにTextBlockコントロールを持っています。その中にいくつかのテキストとハイパーリンクがあります。ユーザーに表示するときにハイパーリンクのURLを短くしますが、ユーザーがハイパーリンク上を移動するときにフルURLを表示するツールチップを追加します。"インライン"ハイパーリンクにツールチップを追加するには

私はコントロールにツールヒントを追加する方法を知っていますが、この場合、ハイパーリンクオブジェクトはコントロールではありません(Windows.UI.Xaml.Documents.Hyperlink)。以下のコードは、すべてのエラーを与えるものではありませんが、それはどちらか動作しません、それはツールチップが表示されない:

var textBlock = new TextBlock(); 
var link = new Hyperlink(); 
var run = new Run(); 
run.Text = "http://www.twitter.com/.../"; 

ToolTip toolTip = new ToolTip(); 
toolTip.Content = "http://www.twitter.com/blablabla/longurl/"; 
ToolTipService.SetToolTip(link, toolTip); 

link.Inlines.Add(run); 
textBlock.Inlines.Add(link); 

のTextBlock内のインラインオブジェクトにツールチップを追加する方法はありますか?

答えて

1

知られているように、Hyperlinkオブジェクトはコントロールではありません。ToolTipService.ToolTip添付プロパティはそれに影響しません。回避策として、TextBlockの代わりにRichTextBlockを使用することをお勧めします。これは、RichTextBlockInlineUIContainerクラスを同時にサポートするため、TextBlockはサポートされていないためです。 ToolTipService.ToolTipHyperlinkButtonに影響を取るため、HyperlinkButtonは、InlineUIContainerに追加することができますので、あなたの要件を満たすために、次のように我々はHyperlinkButtonRichTextBlockを使用することができます。

<RichTextBlock> 
    <Paragraph> 
     <Italic>This is an inline bing: </Italic>  
     <InlineUIContainer> 
      <HyperlinkButton Content="bing" NavigateUri="http://www.bing.com" VerticalAlignment="Bottom" Padding="0,-3" xml:space="preserve"> 
       <ToolTipService.ToolTip> 
        <ToolTip 
         Content="Offset ToolTip." 
         HorizontalOffset="20" 
         VerticalOffset="30" /> 
       </ToolTipService.ToolTip> 
      </HyperlinkButton> 
     </InlineUIContainer> 
     Mauris auctor tincidunt auctor. 
    </Paragraph> 
</RichTextBlock> 
0

あなたがHyperlinkBut​​tonでこれを行うことができます。

<HyperlinkButton NavigateUri="http://www.mrlacey.com/" > 
    <TextBlock Text="mrlacey.com"> 
     <ToolTipService.ToolTip> 
      <TextBlock Text="http://mrlacey.com/" /> 
     </ToolTipService.ToolTip> 
    </TextBlock> 
</HyperlinkButton> 
関連する問題