/******************************************************************************/ /* SlunkCrypt, by LoRd_MuldeR */ /* This work has been released under the CC0 1.0 Universal license! */ /******************************************************************************/ using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; namespace com.muldersoft.slunkcrypt.gui.ctrls { public partial class Hyperlink : UserControl { public event MouseButtonEventHandler Click; public Hyperlink() { InitializeComponent(); } public string LinkText { get { return Label_Hyperlink.Text; } set { Label_Hyperlink.Text = value; } } public FontFamily LinkFontFamily { get { return Label_Hyperlink.FontFamily; } set { Label_Hyperlink.FontFamily = value; } } public double LinkFontSize { get { return Label_Hyperlink.FontSize; } set { Label_Hyperlink.FontSize = value; } } private void Label_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { UIElement inputElement; if (!ReferenceEquals(inputElement = sender as UIElement, null)) { inputElement.CaptureMouse(); } } private void Label_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { UIElement inputElement; if (!ReferenceEquals(inputElement = sender as UIElement, null)) { if (inputElement.IsMouseCaptured) { inputElement.ReleaseMouseCapture(); if (!ReferenceEquals(VisualTreeHelper.HitTest(inputElement, e.GetPosition(inputElement)), null)) { Click?.Invoke(this, e); } } } } } }