using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; using YwxAppWpfDanMu; using YwxAppWpfDanMu.Controls; using YwxAppWpfDanMu.Models; namespace WpfApp1; /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private readonly Random _random = new Random(); public MainWindow() { InitializeComponent(); // 订阅事件 DanMuControl.DanMuClick += OnDanMuClick; DanMuControl.DanMuAdded += OnDanMuAdded; DanMuControl.DanMuRemoved += OnDanMuRemoved; } private void OnDanMuClick(object sender, DanMuEventArgs e) { MessageBox.Show($"点击了弹幕: {e.Message.Content}"); } private void OnDanMuAdded(object sender, DanMuEventArgs e) { // 可以在这里处理弹幕添加事件 } private void OnDanMuRemoved(object sender, DanMuEventArgs e) { // 可以在这里处理弹幕移除事件 } private void PauseButton_Click(object sender, RoutedEventArgs e) { DanMuControl.IsPaused = true; } private void ResumeButton_Click(object sender, RoutedEventArgs e) { DanMuControl.IsPaused = false; } private void ClearButton_Click(object sender, RoutedEventArgs e) { DanMuControl.ClearAll(); } private void Button_Click(object sender, RoutedEventArgs e) { // 方法1: 添加单条弹幕 AddSingleTestDanMu(); // 方法2: 添加多条弹幕(批量) // AddMultipleTestDanMu(5); } // 添加单条测试弹幕 private void AddSingleTestDanMu() { var colors = new[] { Colors.Red, Colors.Green, Colors.Blue, Colors.Yellow, Colors.White, Colors.Cyan, Colors.Magenta }; var fonts = new[] { "Microsoft YaHei", "SimSun", "Arial", "Segoe UI" }; var message = new DanMuMessage { // Content = $"这是单条测试弹幕 {DateTime.Now:HH:mm:ss}", Content = $"这是单条测试弹幕 ", Color = colors[_random.Next(colors.Length)], FontSize = 12 + _random.Next(10), FontFamily = new FontFamily(fonts[_random.Next(fonts.Length)]), FontWeight = _random.Next(2) == 0 ? FontWeights.Normal : FontWeights.Bold, FontStyle = _random.Next(2) == 0 ? FontStyles.Normal : FontStyles.Italic, // Opacity = 0.7 + _random.NextDouble() * 0.3, AvatarUrl = "https://unpkg.com/outeres@0.0.10/demo/avatar/1.jpg" // 使用占位图作为头像 }; DanMuControl.AddDanMu(message); } // 添加多条测试弹幕 private void AddMultipleTestDanMu(int count) { var messages = new List(); var colors = new[] { Colors.Red, Colors.Green, Colors.Blue, Colors.Yellow, Colors.White, Colors.Cyan, Colors.Magenta }; var fonts = new[] { "Microsoft YaHei", "SimSun", "Arial", "Segoe UI" }; for (int i = 0; i < count; i++) { messages.Add(new DanMuMessage { Content = $"批量测试弹幕 {i + 1} - {DateTime.Now:HH:mm:ss}", Color = colors[_random.Next(colors.Length)], FontSize = 12 + _random.Next(10), FontFamily = new FontFamily(fonts[_random.Next(fonts.Length)]), FontWeight = _random.Next(2) == 0 ? FontWeights.Normal : FontWeights.Bold, FontStyle = _random.Next(2) == 0 ? FontStyles.Normal : FontStyles.Italic, Opacity = 0.7 + _random.NextDouble() * 0.3, AvatarUrl = $"https://via.placeholder.com/30?text={i + 1}" // 带编号的头像 }); } DanMuControl.AddDanMuBatch(messages); } }