2017-01-13 3 views
0

У меня есть элемент управления TextBlock в приложении UWP и внутри него. У меня есть несколько текстовых и гиперссылок. Я сокращаю 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 приложенное свойство не влияет на него. В качестве обходного пути я рекомендую использовать RichTextBlock вместо TextBlock. Это связано с тем, что RichTextBlock поддерживает класс InlineUIContainer в то же время TextBlock не поддерживает. HyperlinkButton может быть добавлен к InlineUIContainer, так как ToolTipService.ToolTip принимать эффекты на HyperlinkButton, поэтому мы можем использовать RichTextBlock с HyperlinkButton следующим образом, чтобы соответствовать вашим требованиям:

<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

Вы можете сделать это с HyperlinkButton:

<HyperlinkButton NavigateUri="http://www.mrlacey.com/" > 
    <TextBlock Text="mrlacey.com"> 
     <ToolTipService.ToolTip> 
      <TextBlock Text="http://mrlacey.com/" /> 
     </ToolTipService.ToolTip> 
    </TextBlock> 
</HyperlinkButton> 
Смежные вопросы