Шаг 1: Добавьте следующий код XAML в Window.Resources.
<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: Замените код XAML TextBlock следующим фрагментом кода.
<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;
}
}
Надеюсь, это будет соответствовать вашим требованиям.