diff --git a/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml b/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml new file mode 100644 index 00000000..49f2267c --- /dev/null +++ b/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + diff --git a/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml.cs b/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml.cs new file mode 100644 index 00000000..6357b5f5 --- /dev/null +++ b/LANCommander.Launcher.Avalonia/Views/Components/CoverButton.axaml.cs @@ -0,0 +1,44 @@ +using System.Windows.Input; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; + +namespace LANCommander.Launcher.Avalonia.Views.Components; + +public partial class CoverButton : UserControl +{ + public static readonly StyledProperty CommandProperty = + AvaloniaProperty.Register(nameof(Command)); + + public static readonly StyledProperty CommandParameterProperty = + AvaloniaProperty.Register(nameof(CommandParameter)); + + public ICommand? Command + { + get => GetValue(CommandProperty); + set => SetValue(CommandProperty, value); + } + + public object? CommandParameter + { + get => GetValue(CommandParameterProperty); + set => SetValue(CommandParameterProperty, value); + } + + public CoverButton() + { + InitializeComponent(); + } + + protected override void OnPointerEntered(PointerEventArgs e) + { + base.OnPointerEntered(e); + ZIndex = 100; + } + + protected override void OnPointerExited(PointerEventArgs e) + { + base.OnPointerExited(e); + ZIndex = 0; + } +} diff --git a/LANCommander.Launcher.Avalonia/Views/GamesGridView.axaml b/LANCommander.Launcher.Avalonia/Views/GamesGridView.axaml index eb8a87aa..ecb554b6 100644 --- a/LANCommander.Launcher.Avalonia/Views/GamesGridView.axaml +++ b/LANCommander.Launcher.Avalonia/Views/GamesGridView.axaml @@ -2,62 +2,11 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:LANCommander.Launcher.Avalonia.ViewModels" xmlns:vmComponents="using:LANCommander.Launcher.Avalonia.ViewModels.Components" - xmlns:converters="using:LANCommander.Launcher.Avalonia.Converters" xmlns:local="using:LANCommander.Launcher.Avalonia.Views" + xmlns:components="using:LANCommander.Launcher.Avalonia.Views.Components" x:Class="LANCommander.Launcher.Avalonia.Views.GamesGridView" x:DataType="vm:GamesCollectionViewModel"> - - - - - - - - - - - - - - + diff --git a/LANCommander.Launcher.Avalonia/Views/GamesGroupedView.axaml b/LANCommander.Launcher.Avalonia/Views/GamesGroupedView.axaml index 98eabd42..99d22b17 100644 --- a/LANCommander.Launcher.Avalonia/Views/GamesGroupedView.axaml +++ b/LANCommander.Launcher.Avalonia/Views/GamesGroupedView.axaml @@ -2,61 +2,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:LANCommander.Launcher.Avalonia.ViewModels" xmlns:vmComponents="using:LANCommander.Launcher.Avalonia.ViewModels.Components" - xmlns:converters="using:LANCommander.Launcher.Avalonia.Converters" + xmlns:components="using:LANCommander.Launcher.Avalonia.Views.Components" x:Class="LANCommander.Launcher.Avalonia.Views.GamesGroupedView" x:DataType="vm:GamesCollectionViewModel"> - - - - - - - - - - - - - + IsVisible="{Binding $parent[ItemsControl].((vm:GamesCollectionViewModel)DataContext).IsGridView}" + ClipToBounds="False"> - + @@ -208,51 +121,16 @@ - + - + diff --git a/LANCommander.Launcher.Avalonia/Views/GamesShelfView.axaml b/LANCommander.Launcher.Avalonia/Views/GamesShelfView.axaml index 7c29a90f..9729107d 100644 --- a/LANCommander.Launcher.Avalonia/Views/GamesShelfView.axaml +++ b/LANCommander.Launcher.Avalonia/Views/GamesShelfView.axaml @@ -2,108 +2,22 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:LANCommander.Launcher.Avalonia.ViewModels" xmlns:vmComponents="using:LANCommander.Launcher.Avalonia.ViewModels.Components" - xmlns:converters="using:LANCommander.Launcher.Avalonia.Converters" + xmlns:components="using:LANCommander.Launcher.Avalonia.Views.Components" x:Class="LANCommander.Launcher.Avalonia.Views.GamesShelfView" x:DataType="vm:GamesCollectionViewModel"> - - - - - - - - - - - - - - + - +