2013-08-02 2 views
0

Я пытаюсь использовать этот код для открытия почтового клиента (Outlook или Gmail, в зависимости от предпочтений пользователя).Гипер ссылки на адрес электронной почты

XAML:

<TextBlock Margin="0,5,0,0" > 
     <Hyperlink RequestNavigate="HandleRequestNavigate" Foreground="{StaticResource EnableColorSolid}" NavigateUri="http://[email protected]"> 
        [email protected] 
     </Hyperlink> 
    </TextBlock> 

Код:

private void HandleRequestNavigate(object sender, RequestNavigateEventArgs e) 
    { 
     string navigateUri = (sender as Hyperlink).NavigateUri.ToString(); 
     // if the URI somehow came from an untrusted source, make sure to 
     // validate it before calling Process.Start(), e.g. check to see 
     // the scheme is HTTP, etc. 
     Process.Start(new ProcessStartInfo(navigateUri)); 
     e.Handled = true; 
    } 

Но это не работает. Любая идея почему? Я думаю, что есть проблема с ссылкой, но я не знаю, что это такое.

+0

Используйте "MailTo:" вместо "HTTP: //" – Vishal

ответ

0

Используйте mailto ссылку:

<TextBlock Margin="0,5,0,0" > 
     <Hyperlink RequestNavigate="HandleRequestNavigate" 
      Foreground="{StaticResource EnableColorSolid}" 
      NavigateUri="mailto:[email protected]"> 
        [email protected] 
     </Hyperlink> 
</TextBlock> 
+0

Это будет работать только с приложением электронной почты по умолчанию. Если вы хотите использовать Gmail или любой другой поставщик веб-почты, вам придется использовать пространство имен System.Net.Mail для отправки электронной почты через SMTP. Вы можете щелкнуть гиперссылку, обработать навигацию, а затем вызвать свою функцию электронной почты ... – Nick