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;
                    }
                }
            });
        }
예제 #2
0
 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();
 }
예제 #3
0
        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");
        }
예제 #4
0
        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();
        }