あなたは以下のようにコンバータを試すことができ
、
<TextBlock Grid.Column="3"
HorizontalAlignment="Left"
VerticalAlignment="Center">
<TextBlock.Resources>
<local:StringToMailToConverer x:Key="StringToMailToConverer" />
</TextBlock.Resources>
<Hyperlink NavigateUri="{Binding Email, Converter={StaticResource StringToMailToConverer}}">
<Run Text="{Binding Email}" />
</Hyperlink>
</TextBlock>
コンバータ、
public class StringToMailToConverer : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value != null)
{
if (!string.IsNullOrEmpty(value.ToString()))
{
return "mailto:" + value.ToString();
}
}
return string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
アップデートその場合 、あなたが使用することができます。これは私がSOFAR持っているものです単純な挙動、
<TextBlock xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Grid.Column="3"
HorizontalAlignment="Left"
VerticalAlignment="Center">
<Hyperlink NavigateUri="{Binding Email}">
<i:Interaction.Behaviors>
<local:MailToBehaviour />
</i:Interaction.Behaviors>
<Run Text="{Binding Email}" />
</Hyperlink>
</TextBlock>
public class MailToBehaviour : Behavior<Hyperlink>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.RequestNavigate += (_, __) =>
{
Process.Start("mailto:" + __.Uri);
__.Handled = true;
};
}
}
System.Windows.Interactivityアセンブリを参照する必要があります
はい、試しましたが、既定のメールクライアントを開く機能がありません。 NavigateUriを "mailto:[email protected]"に設定しても、メールクライアントを開く機能は自動的に実装されません。 – user1702369
@ user1702369私の更新を参照してください – WPFUser
それは、ありがとうございます。間違いなく私が望むもの。 – user1702369