using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Media.Imaging; using CommunityToolkit.Mvvm.Input; using FluentAvalonia.UI.Controls; using StabilityMatrix.Avalonia.Helpers; using StabilityMatrix.Core.Helper; namespace StabilityMatrix.Avalonia.Controls; public partial class AdvancedImageBoxView : UserControl { public AdvancedImageBoxView() { InitializeComponent(); } /// protected override void OnApplyTemplate(TemplateAppliedEventArgs e) { base.OnApplyTemplate(e); if (this.FindControl("CopyMenuItem") is { } copyMenuItem) { copyMenuItem.Command = new AsyncRelayCommand(FlyoutCopy); } } private static async Task FlyoutCopy(Bitmap? image) { if (image is null || !Compat.IsWindows) return; await Task.Run(() => { if (Compat.IsWindows) { WindowsClipboard.SetBitmap(image); } }); } }