private void OnVisibilityChanged(object?sender, bool mouseEnter) { Dispatcher.InvokeAsync(() => { var myWindow = ReferenceEquals(sender, Window.GetWindow(this)); var hidden = _context != null && sender switch { BuffWindow _ => App.Settings.BuffWindowSettings.Hidden.Contains(_context.Abnormality.Id) && myWindow, GroupWindow _ => App.Settings.GroupWindowSettings.Hidden.Contains(_context.Abnormality.Id) && myWindow, _ => false }; if (!myWindow) { return; } if (mouseEnter) { Visibility = Visibility.Visible; } else { if (hidden) { Visibility = Visibility.Collapsed; } } }); }
private static void LoadWindows() { //waiting = true; //foreach (var del in WindowLoadingDelegates) //{ // waiting = true; // del.DynamicInvoke(); // while (waiting) { } //} GroupWindow = new GroupWindow(); CooldownWindow = new CooldownWindow(); BossWindow = new BossWindow(); BuffWindow = new BuffWindow(); CharacterWindow = new CharacterWindow(); ClassWindow = new ClassWindow(); InfoWindow = new InfoWindow(); FlightDurationWindow = new FlightDurationWindow(); LfgListWindow = new LfgListWindow(); SkillConfigWindow = new SkillConfigWindow(); GroupAbnormalConfigWindow = new GroupAbnormalConfigWindow(); CivilUnrestWindow = new CivilUnrestWindow(); FloatingButton = new FloatingButtonWindow(); ChatWindowManager.Instance.InitWindows(); //GroupWindow.Show(); //CooldownWindow.Show(); //BossWindow.Show(); //BuffWindow.Show(); //CharacterWindow.Show(); //ClassWindow.Show(); }
private static void LoadBuffBarWindow() { var buffBarThread = new Thread(new ThreadStart(() => { SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)); BuffWindow = new BuffWindow(); BuffBarWindowViewModel.Instance.Player = new Data.Player(); BuffWindow.Show(); waiting = false; Dispatcher.Run(); })); buffBarThread.Name = "Buff bar thread"; buffBarThread.SetApartmentState(ApartmentState.STA); buffBarThread.Start(); Debug.WriteLine("Buff window loaded"); }
private static void LoadBuffBarWindow() { var buffBarThread = new Thread(() => { SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)); BuffWindow = new BuffWindow(); if (BuffWindow.WindowSettings.Enabled) { BuffWindow.Show(); } AddDispatcher(Thread.CurrentThread.ManagedThreadId, Dispatcher.CurrentDispatcher); Dispatcher.Run(); RemoveDispatcher(Thread.CurrentThread.ManagedThreadId); }) { Name = "Buff" }; buffBarThread.SetApartmentState(ApartmentState.STA); buffBarThread.Start(); }