From 17b0da358f516413d9b2e6ca6d4be96bbd58ffef Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Fri, 22 Jul 2022 20:11:13 -0600 Subject: [PATCH] Add LinkLabel control --- .../AvaloniaUI/Controls/LinkLabel.axaml | 13 +++++++ .../AvaloniaUI/Controls/LinkLabel.axaml.cs | 34 +++++++++++++++++++ .../Views/Dialogs/BookDetailsDialog.axaml | 17 ++++------ .../Login/LoginChoiceEagerDialog.axaml | 5 ++- .../Dialogs/MessageBoxAlertAdminDialog.axaml | 11 ++---- 5 files changed, 57 insertions(+), 23 deletions(-) create mode 100644 Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml create mode 100644 Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml.cs diff --git a/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml b/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml new file mode 100644 index 00000000..be09d2a7 --- /dev/null +++ b/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml @@ -0,0 +1,13 @@ + + + + + diff --git a/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml.cs b/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml.cs new file mode 100644 index 00000000..64cb572e --- /dev/null +++ b/Source/LibationWinForms/AvaloniaUI/Controls/LinkLabel.axaml.cs @@ -0,0 +1,34 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; +using Avalonia.Markup.Xaml; +using Avalonia.Styling; +using System; + +namespace LibationWinForms.AvaloniaUI.Controls +{ + public partial class LinkLabel : TextBlock, IStyleable + { + Type IStyleable.StyleKey => typeof(TextBlock); + private static readonly Cursor HandCursor = new Cursor(StandardCursorType.Hand); + public LinkLabel() + { + InitializeComponent(); + } + protected override void OnPointerEnter(PointerEventArgs e) + { + this.Cursor = HandCursor; + base.OnPointerEnter(e); + } + protected override void OnPointerLeave(PointerEventArgs e) + { + this.Cursor = Cursor.Default; + base.OnPointerLeave(e); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +} diff --git a/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/BookDetailsDialog.axaml b/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/BookDetailsDialog.axaml index 488a0e22..b7a1d646 100644 --- a/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/BookDetailsDialog.axaml +++ b/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/BookDetailsDialog.axaml @@ -23,18 +23,13 @@ - - - - + @@ -51,9 +52,7 @@ Grid.Row="3" VerticalAlignment="Bottom"> - diff --git a/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/MessageBoxAlertAdminDialog.axaml b/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/MessageBoxAlertAdminDialog.axaml index 52f94d48..348c94df 100644 --- a/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/MessageBoxAlertAdminDialog.axaml +++ b/Source/LibationWinForms/AvaloniaUI/Views/Dialogs/MessageBoxAlertAdminDialog.axaml @@ -6,6 +6,7 @@ MinWidth="600" MinHeight="450" MaxWidth="600" MaxHeight="450" x:Class="LibationWinForms.AvaloniaUI.Views.Dialogs.MessageBoxAlertAdminDialog" + xmlns:controls="clr-namespace:LibationWinForms.AvaloniaUI.Controls" Title="MessageBoxAlertAdminDialog" WindowStartupLocation="CenterOwner" Icon="/AvaloniaUI/Assets/libation.ico"> @@ -47,16 +48,8 @@ HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Vertical"> - - - - -