链接到WPF应用程序中的默认电子邮件处理程序中的打开新电子邮件

时间:2014-04-11 18:47:13

标签: c# wpf email

我的目标是基本的:在WPF表单上有一个标签/ texblock,你可以将其设置为看起来像一个链接。单击时,控件应在用户的默认电子邮件应用程序中打开一个新的电子邮件撰写窗口。实际打开新电子邮件窗口的代码似乎微不足道:

Process.Start("mailto:example@stackoverflow.com?subject=SubjectExample&body=BodyExample ");

但是我遇到两件事有问题:

  1. 绑定"新消息打开"对标签点击事件的操作。
  2. 对标签进行样式化,使其看起来与默认的WPF超链接完全相同。

2 个答案:

答案 0 :(得分:29)

如果您希望样式像超链接,为什么不直接使用?

<TextBlock>           
    <Hyperlink NavigateUri="mailto:example@stackoverflow.com?subject=SubjectExample&amp;body=BodyExample" RequestNavigate="OnNavigate">
        Click here
    </Hyperlink>
</TextBlock>

然后添加:

private void OnNavigate(object sender, RequestNavigateEventArgs e)
{
    Process.Start(e.Uri.AbsoluteUri);
    e.Handled = true;
}

答案 1 :(得分:3)

您可以在XAML中完全执行此操作 使用表达式交互来调用上面提到的链接

的xmlns:I =&#34; HTTP://schemas.microsoft.com/expression/2010/interactivity"的xmlns:EI =&#34; HTTP://schemas.microsoft.com/expression/2010/interactions"

&#13;
&#13;
<Label Content="Send Email">
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseLeftButtonUp">
      <ei:LaunchUriOrFileAction Path="mailto:example@stackoverflow.com" />
    </i:EventTrigger>
  </i:Interaction.Triggers>
</Label>
&#13;
&#13;
&#13;