电子邮件超链接按钮

时间:2011-01-19 14:27:55

标签: silverlight hyperlink mailto

我正在尝试使用超链接按钮作为silverlight 4中的mailto,如下所示:

<HyperlinkButton x:Name="hlbCustomerSupport" NavigateUri="mailto:customerservice@fofo.com" Content="customerservice@fofo.com"></HyperlinkButton>

当我在应用程序中单击它时,我得到:

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容;   MSIE 8.0; Windows NT 6.1;三叉戟/ 4.0;   SLCC2; .NET CLR 2.0.50727; .NET CLR   3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C;   .NET4.0E)时间戳:2011年1月19日星期三   14:24:29 UTC

     

消息:未处理的错误   Silverlight应用代码:4004
  类别:ManagedRuntimeError
  消息:System.ArgumentException:   无法加载URI的内容。   URI可能无效。参数   姓名:uri at   System.Windows.Navigation.NavigationService.NavigateCore(URI   uri,NavigationMode模式,布尔值   suppressJournalAdd,布尔值   isRedirect)在   System.Windows.Controls.Frame.Navigate(URI   来源)   MS.Internal.NavigationHelper.TryInternalNavigate()   在   MS.Internal.NavigationHelper.Navigate(布尔   checkUserInitiatedAction)at   System.Windows.Controls.HyperlinkBut​​ton.OnClick()   在   System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs   吃   System.Windows.Controls.Control.OnMouseLeftButtonUp(控制   ctrl,EventArgs e)at   MS.Internal.JoltHelper.FireEvent(IntPtr的   unmanagedObj,IntPtr unmanagedObjArgs,   Int32 argsTypeIndex,String eventName)

我在其他地方以编程方式执行此操作。我尝试了同样的方法,仍然得到错误。

2 个答案:

答案 0 :(得分:8)

我明白了。有效的hyperlinkBut​​ton位于子窗口(远嵌套控件)中,而不在站点模板中的那个(Application对象的Child)。因此,网站模板中的超链接按钮似乎必须指定TargetName =“_ blank”。不知道为什么会这样。

答案 1 :(得分:0)

我能够通过向xaml添加click事件并将url存储在Tag =“”属性中来解决错误。

XAML:

<HyperlinkButton Content="PDR Drug Handbook" Tag="http://www.pdrhealth.com/" FontSize="14" Click="HyperlinkButton_Click" />

代码背后:

private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
    {
        HyperlinkButton button = (HyperlinkButton)sender;
        System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(button.Tag.ToString()), "_self");
    }

编辑:由于将目标从“_blank”更改为“_self”,弹出窗口阻止程序现在不太可能被调用