SlunkCrypt/gui/Controls/Hyperlink.xaml.cs

84 lines
2.2 KiB
C#

/******************************************************************************/
/* SlunkCrypt, by LoRd_MuldeR <MuldeR2@GMX.de> */
/* 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);
}
}
}
}
}
}