簡體   English   中英

隱藏字符串中的電子郵件地址

[英]Hiding an email address in string

我正在構建一個字符串,其中必須隱藏一個電子郵件地址。

string StatusText = "Please reach out here for access."

只是想知道我們如何將電子郵件地址隱藏在字符串中。 我希望“這里”是一個電子郵件地址。 我必須將StatusText綁定到Textblock,以便當用戶單擊“此處”時,Outlook郵件應打開。

這是詳細的代碼:

View.xaml

<TextBlock   Text="{Binding StatusText}" />

ViewModel.cs

private string _statusText;
public string StatusText
{
            get { return _statusText; }
            set { SetProperty(ref _statusText, value); }
}


DisplayMessages()
{
  //based on the boolean value, Status Text is set
  //When the case is "NoAccess", I want the "here" of StatusText to be clickable and show the mailaddress as abc@abc.com
  switch(Flag)
   case IsReady:
       StatusText = "Application is Ready";
     break;
   case NoAccess:
     StatusText = "Please reach out here. No access can be provided."
    break;
}

我希望您利用XAML

<TextBlock>
    <Run Text="Please reach out "/>
    <Hyperlink NavigateUri="YOUR_URL_FOR_OUTLOOK" RequestNavigate="Hyperlink_RequestNavigate">here</Hyperlink>
    <Run Text=" for access."/>
</TextBlock>

在后面的代碼中

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
    e.Handled = true;
}

使用此方法的主要好處是可以使用Binding將您的emailId綁定到Hyperlink

您的輸出在Viewer中將如下所示 在此處輸入圖片說明

步驟1:在Window.Resources中添加以下XAML代碼。

<local:DataTemplateSelectorExt x:Key="Selector"></local:DataTemplateSelectorExt>

<DataTemplate x:Key="NoAccess">
        <TextBlock Background="Green">
            <Run Text="Please reach out "/>
            <Hyperlink NavigateUri="abc@gmail.com" RequestNavigate="Hyperlink_RequestNavigate">here</Hyperlink>
            <Run Text=" for access."/>
        </TextBlock>
    </DataTemplate>

步驟2:用以下代碼片段替換TextBlock XAML代碼。

<Label Content="{Binding StatusText}" ContentTemplateSelector="{Binding Source={StaticResource Selector}}" />

步驟3:在MainWindow類中添加以下方法。

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        Popup popup = new Popup { IsOpen = true, Width = 100, Height = 50, Placement = PlacementMode.Mouse };
        popup.Child = new TextBlock { Text = (sender as Hyperlink).NavigateUri.ToString(), Background = Brushes.Green };
        popup.IsOpen = true;            
    }

步驟4:最后在您的項目中添加以下類。

public class DataTemplateSelectorExt : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        if (item == null) return (DataTemplate)null;

        FrameworkElement frameworkElement = container as FrameworkElement;

        if (item.Equals("Please reach out here. No access can be provided."))
            return Application.Current.MainWindow.FindResource("NoAccess") as DataTemplate;

            return null;
    }
}

希望這會滿足您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM