using System; using System.Collections.Generic; using Avalonia; using Avalonia.Controls; using Avalonia.Layout; using Avalonia.Markup.Xaml; using Avalonia.Media; namespace DispenserUI.Views.Controls; public partial class LockedView : UserControl { public LockedView() { InitializeComponent(); WaterMark = this.FindControl("WaterMark"); this.GetObservable(IsVisibleProperty).Subscribe(val => { if (val) { DrawWaterMark(); } }); } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } private void DrawWaterMark() { WaterMark.RenderTransformOrigin = RelativePoint.Center; WaterMark.RenderTransform = new RotateTransform(-45); var wrapPanel = new WrapPanel(); var stackPanels = new List(); for (int i = 0; i < 100; i++) { var stackPanel = new StackPanel { Margin = new Thickness(100), Height = 50 }; // 创建提醒文字和时间文字 var textBlock = new TextBlock { Text = "设备已锁定,请联系管理员解锁!", FontSize = 20, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Foreground = new SolidColorBrush(Colors.Gray), Opacity = 0.5, }; var timeTextBlock = new TextBlock { Text = DateTime.Now.ToString("yyyy年M月d日 dddd HH:mm:ss"), FontSize = 12, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Foreground = new SolidColorBrush(Colors.Gray), Opacity = 0.5, }; stackPanel.Children.Add(textBlock); stackPanel.Children.Add(timeTextBlock); stackPanels.Add(stackPanel); } wrapPanel.Children.AddRange(stackPanels); WaterMark.Children.Add(wrapPanel); } }