당신은 다음과 같이 변환을 시도 할 수 있습니다
,
<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
그게 전부 고마워. Excatly 내가 원한 것. – user1702369