My goal is basic: Have a label/texblock what-have-you on a WPF form that is stylized to look like a link. When clicked, the control should open a new e-mail composition window in the user's default e-mail app. The code to actually open the new e-mail window seems trivial:
Process.Start("mailto:[email protected]?subject=SubjectExample&body=BodyExample ");
However I'm having trouble with two pieces:
If you want the style to be like a hyperlink, why not just use one directly?
<TextBlock>
<Hyperlink NavigateUri="mailto:[email protected]?subject=SubjectExample&body=BodyExample" RequestNavigate="OnNavigate">
Click here
</Hyperlink>
</TextBlock>
Then add:
private void OnNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(e.Uri.AbsoluteUri);
e.Handled = true;
}
You can do this entirely in XAML Use Expression interactions to call the link mentioned above.
First, import the following namespaces:
xmlns:i = "http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei = "http://schemas.microsoft.com/expression/2010/interactions"
Then, use them like the following:
<Label Content="Send Email">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<ei:LaunchUriOrFileAction Path="mailto:[email protected]" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Label>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With