Tak*_*ais 3 c# xaml windows-phone windows-phone-8
我在Windows Phone 8应用程序中有一些大文本,我希望里面有电子邮件链接,类似于mailto功能.这是代码的一部分:
<phone:PivotItem Header="???? ???">
<ScrollViewer>
<StackPanel>
<TextBlock TextWrapping="Wrap">
<Run Text="John Doe"/>
<LineBreak/>
<Run Text="503 (Building DS 126)"/>
<LineBreak/>
<Run Text="tel.: +30 210-1234567"/>
<LineBreak/>
<Run Text="e-mail: johndoe@uni.gr"/>
</TextBlock>
</StackPanel>
</ScrollViewer>
</phone:PivotItem>
Run Code Online (Sandbox Code Playgroud)
我希望"电子邮件:johndoe@uni.gr"可以点击并打开手机上的邮件应用程序.在我的代码中有很多类似的情况,电子邮件的文本更大,这就是我使用<TextBlock><Run Text=".."/><LineBreak/>...格式的原因.
现在我知道我不能在里面使用超链接按钮<Run Text=".."/>所以有什么建议吗?
Gar*_*son 10
如果你想在你的UI中使用超链接,HyperlinkButton是好的,但是如果你想在一系列文本中嵌入超链接,你应该使用带有超链接的RichTextBox:
<RichTextBox TextWrapping="Wrap">
<Paragraph>
<Run Text="John Doe" />
<LineBreak />
<Run Text="503 (Building DS 126)" />
<LineBreak />
<Run Text="tel.: +30 210-1234567" />
<LineBreak />
<Hyperlink Click="Hyperlink_OnClick">e-mail: johndoe@uni.gr</Hyperlink>
</Paragraph>
</RichTextBox>
Run Code Online (Sandbox Code Playgroud)
然后使用Julien的答案中的处理程序:
private void Hyperlink_OnClick(object sender, RoutedEventArgs e) {
EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.Subject = "message subject";
emailComposeTask.Body = "message body";
emailComposeTask.To = "johndoe@uni.gr";
emailComposeTask.Show();
}
Run Code Online (Sandbox Code Playgroud)
祝好运!