我的UWP应用程序中有一个TextBlock控件,里面有几个文本和超链接。我向用户显示时缩短了超链接的URL,但我想添加一个工具提示,当用户将鼠标悬停在超链接上时显示完整的URL。
我知道如何向控件添加工具提示,但在这种情况下,Hyperlink对象不是控件(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中为Inline对象添加工具提示?
答案 0 :(得分:1)
如您所知,Hyperlink
对象不是控件,似乎ToolTipService.ToolTip
附加属性对它没有影响。作为解决方法,我建议您使用RichTextBlock
代替TextBlock
。这是因为for (int i=0; i <[coordinatesArray count]; i++)
{
float latitude = [coordinatesArray[i][@"latitude"] floatValue];
float longitude = [coordinatesArray[i][@"longitude"] floatValue];
MKPolygon *polygon;
CLLocationCoordinate2D coordinates[[coordinatesArray count]];
coordinates[i] = CLLocationCoordinate2DMake(latitude , longitude);
polygon = [MKPolygon polygonWithCoordinates:coordinates count:[coordinatesArray count]];
[self.mapView addOverlay:polygon];
}
同时支持InlineUIContainer
类RichTextBlock
不支持。可以将HyperlinkButton
添加到TextBlock
,因为InlineUIContainer
会对ToolTipService.ToolTip
产生影响,因此我们可以使用HyperlinkButton
与RichTextBlock
如下进行会面你的要求:
HyperlinkButton
答案 1 :(得分:0)
您可以使用HyperlinkButton执行此操作:
<HyperlinkButton NavigateUri="http://www.mrlacey.com/" >
<TextBlock Text="mrlacey.com">
<ToolTipService.ToolTip>
<TextBlock Text="http://mrlacey.com/" />
</ToolTipService.ToolTip>
</TextBlock>
</HyperlinkButton>