| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using System;
- using Avalonia.Controls;
- using Avalonia.Layout;
- namespace ControlCatalog.Pages;
- public partial class RetroGamingGamesView : UserControl
- {
- public Action<string>? GameSelected { get; set; }
- public RetroGamingGamesView()
- {
- InitializeComponent();
- GameCyberNinjaBtn.Click += (_, _) => GameSelected?.Invoke("Cyber Ninja 2084");
- GameNeonRacerBtn.Click += (_, _) => GameSelected?.Invoke("Neon Racer");
- GameDungeonBitBtn.Click += (_, _) => GameSelected?.Invoke("Dungeon Bit");
- GameForestSpiritBtn.Click += (_, _) => GameSelected?.Invoke("Forest Spirit");
- GamePixelQuestBtn.Click += (_, _) => GameSelected?.Invoke("Pixel Quest");
- GameSpaceVoidsBtn.Click += (_, _) => GameSelected?.Invoke("Space Voids");
- GameCyberCityBtn.Click += (_, _) => GameSelected?.Invoke("Cyber City");
- GamesGrid.SizeChanged += OnGridSizeChanged;
- }
- void OnGridSizeChanged(object? sender, SizeChangedEventArgs e)
- {
- const double defaultWidth = 145;
- var available = GamesGrid.Bounds.Width;
- if (available <= 0) return;
- bool singleColumn = available < defaultWidth * 2;
- foreach (var child in GamesGrid.Children)
- {
- if (child is Button btn && btn.Content is Border card)
- card.Width = singleColumn ? available : defaultWidth;
- }
- }
- }
|