示例#1
0
        public Msg()
        {
            InitializeComponent();
            var screen         = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dipWorkingArea = WindowIntelopHelper.TransformPixelsToDIP(this,
                                                                          screen.WorkingArea.Width,
                                                                          screen.WorkingArea.Height);

            Left = dipWorkingArea.X - Width;
            Top  = dipWorkingArea.Y;
            showAnimation.From = dipWorkingArea.Y;
            showAnimation.To   = dipWorkingArea.Y - Height;

            // Create the fade out storyboard
            fadeOutStoryboard.Completed += fadeOutStoryboard_Completed;
            DoubleAnimation fadeOutAnimation = new DoubleAnimation(dipWorkingArea.Y - Height, dipWorkingArea.Y, new Duration(TimeSpan.FromSeconds(1)))
            {
                AccelerationRatio = 0.2
            };

            Storyboard.SetTarget(fadeOutAnimation, this);
            Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(TopProperty));
            fadeOutStoryboard.Children.Add(fadeOutAnimation);

            imgClose.Source   = ImageLoader.Load(Path.Combine(Infrastructure.Wox.ProgramPath, "Images\\close.png"));
            imgClose.MouseUp += imgClose_MouseUp;
        }
示例#2
0
        private void OnLoaded(object sender, RoutedEventArgs _)
        {
            CheckUpdate();

            ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
            InternationalizationManager.Instance.ChangeLanguage(UserSettingStorage.Instance.Language);

            InitProgressbarAnimation();
            WindowIntelopHelper.DisableControlBox(this);

            var vm = (MainViewModel)DataContext;

            vm.TextBoxSelected  += (o, e) => QueryTextBox.SelectAll();
            vm.CursorMovedToEnd += (o, e) =>
            {
                QueryTextBox.Focus();
                QueryTextBox.CaretIndex = QueryTextBox.Text.Length;
            };
            vm.MainWindowVisibilityChanged += (o, e) =>
            {
                if (vm.MainWindowVisibility.IsVisible())
                {
                    Activate();
                    QueryTextBox.Focus();
                }
            };

            vm.Left = GetWindowsLeft();
            vm.Top  = GetWindowsTop();
            vm.MainWindowVisibility = Visibility.Visible;
        }
示例#3
0
        private void OnLoaded(object sender, RoutedEventArgs _)
        {
            WindowIntelopHelper.DisableControlBox(this);
            ThemeManager.Instance.ChangeTheme(_settings.Theme);
            InitializeNotifyIcon();
            InitProgressbarAnimation();

            _viewModel.PropertyChanged += (o, e) =>
            {
                if (e.PropertyName == nameof(MainViewModel.MainWindowVisibility))
                {
                    if (_viewModel.MainWindowVisibility.IsVisible())
                    {
                        Activate();
                        QueryTextBox.Focus();
                        SetWindowPosition();
                        _settings.ActivateTimes++;
                        if (_viewModel.QueryTextSelected)
                        {
                            QueryTextBox.SelectAll();
                            _viewModel.QueryTextSelected = false;
                        }
                    }
                }
            };
            // since the default main window visibility is visible
            // so we need set focus during startup
            QueryTextBox.Focus();
        }
示例#4
0
文件: Msg.xaml.cs 项目: wuxingya/Wox
        public Msg()
        {
            InitializeComponent();
            var screen         = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dipWorkingArea = WindowIntelopHelper.TransformPixelsToDIP(this,
                                                                          screen.WorkingArea.Width,
                                                                          screen.WorkingArea.Height);

            Left = dipWorkingArea.X - Width;
            Top  = dipWorkingArea.Y;
            showAnimation.From = dipWorkingArea.Y;
            showAnimation.To   = dipWorkingArea.Y - Height;

            // Create the fade out storyboard
            fadeOutStoryboard.Completed += fadeOutStoryboard_Completed;
            DoubleAnimation fadeOutAnimation = new DoubleAnimation(dipWorkingArea.Y - Height, dipWorkingArea.Y, new Duration(TimeSpan.FromSeconds(0.3)))
            {
                AccelerationRatio = 0.2
            };

            Storyboard.SetTarget(fadeOutAnimation, this);
            Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(TopProperty));
            fadeOutStoryboard.Children.Add(fadeOutAnimation);


            imgClose.Source = new BitmapImage(new Uri("Images\\close.pn", UriKind.Relative));
            //imgClose.Source = new BitmapImage(new Uri(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), "Images\\close.png")));
            imgClose.MouseUp += imgClose_MouseUp;
        }
示例#5
0
        private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
        {
            if (UserSettingStorage.Instance.WindowLeft == 0 &&
                UserSettingStorage.Instance.WindowTop == 0)
            {
                Left             = UserSettingStorage.Instance.WindowLeft
                                 = (SystemParameters.PrimaryScreenWidth - ActualWidth) / 2;
                Top              = UserSettingStorage.Instance.WindowTop
                                 = (SystemParameters.PrimaryScreenHeight - ActualHeight) / 5;
            }
            else
            {
                Left = UserSettingStorage.Instance.WindowLeft;
                Top  = UserSettingStorage.Instance.WindowTop;
            }

            Plugins.Init();

            InitProgressbarAnimation();

            //only works for win7+
            if (UserSettingStorage.Instance.OpacityMode == OpacityMode.DWM)
            {
                DwmDropShadow.DropShadowToWindow(this);
            }

            this.Background = Brushes.Transparent;
            HwndSource.FromHwnd(new WindowInteropHelper(this).Handle).CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0);

            WindowIntelopHelper.DisableControlBox(this);
        }
示例#6
0
 private void OnLoaded(object sender, RoutedEventArgs _)
 {
     InitProgressbarAnimation();
     WindowIntelopHelper.DisableControlBox(this);
     ThemeManager.Instance.ChangeTheme(_settings.Theme);
     InitializeNotifyIcon();
 }
示例#7
0
        private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
        {
            Left = GetWindowsLeft();
            Top  = GetWindowsTop();

            InitProgressbarAnimation();
            WindowIntelopHelper.DisableControlBox(this);
            CheckUpdate();
        }
示例#8
0
        private double WindowTop()
        {
            var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dip1   = WindowIntelopHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
            var dip2   = WindowIntelopHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);
            var top    = (dip2.Y - QueryTextBox.ActualHeight) / 4 + dip1.Y;

            return(top);
        }
示例#9
0
        private double WindowLeft()
        {
            var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dip1   = WindowIntelopHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
            var dip2   = WindowIntelopHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
            var left   = (dip2.X - ActualWidth) / 2 + dip1.X;

            return(left);
        }
示例#10
0
        private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
        {
            ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme);
            InternationalizationManager.Instance.ChangeLanguage(UserSettingStorage.Instance.Language);

            Left = GetWindowsLeft();
            Top  = GetWindowsTop();

            InitProgressbarAnimation();
            WindowIntelopHelper.DisableControlBox(this);
            CheckUpdate();
        }
示例#11
0
        /// <summary>
        /// Checks if Wox should ignore any hotkeys
        /// </summary>
        /// <returns></returns>
        private bool ShouldIgnoreHotkeys()
        {
            //double if to omit calling win32 function
            if (_settings.IgnoreHotkeysOnFullscreen)
            {
                if (WindowIntelopHelper.IsWindowFullscreen())
                {
                    return(true);
                }
            }

            return(false);
        }
示例#12
0
        private double GetWindowsLeft()
        {
            if (UserSettingStorage.Instance.RememberLastLaunchLocation)
            {
                return(UserSettingStorage.Instance.WindowLeft);
            }

            var screen   = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dipPoint = WindowIntelopHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);

            UserSettingStorage.Instance.WindowLeft = (dipPoint.X - ActualWidth) / 2;
            return(UserSettingStorage.Instance.WindowLeft);
        }
示例#13
0
        private double GetWindowsTop()
        {
            if (UserSettingStorage.Instance.RememberLastLaunchLocation)
            {
                return(UserSettingStorage.Instance.WindowTop);
            }

            var screen   = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dipPoint = WindowIntelopHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);

            UserSettingStorage.Instance.WindowTop = (dipPoint.Y - QueryTextBox.ActualHeight) / 4;
            return(UserSettingStorage.Instance.WindowTop);
        }
示例#14
0
        private double GetWindowsTop()
        {
            if (_settings.RememberLastLaunchLocation)
            {
                return(_settings.WindowTop);
            }

            var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dip1   = WindowIntelopHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
            var dip2   = WindowIntelopHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height);
            var top    = (dip2.Y - ActualHeight) / 4 + dip1.Y;

            return(top);
        }
示例#15
0
        private double GetWindowsLeft()
        {
            if (_settings.RememberLastLaunchLocation)
            {
                return(_settings.WindowLeft);
            }

            var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
            var dip1   = WindowIntelopHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
            var dip2   = WindowIntelopHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
            var left   = (dip2.X - ActualWidth) / 2 + dip1.X;

            return(left);
        }
示例#16
0
        private void OnLoaded(object sender, RoutedEventArgs _)
        {
            InitProgressbarAnimation();
            WindowIntelopHelper.DisableControlBox(this);
            ThemeManager.Instance.ChangeTheme(_settings.Theme);
            InitializeNotifyIcon();

            var vm = (MainViewModel)DataContext;

            RegisterEvents(vm);

            // happlebao todo delete
            vm.Left = GetWindowsLeft();
            vm.Top  = GetWindowsTop();
            vm.MainWindowVisibility = _settings.HideOnStartup ? Visibility.Hidden : Visibility.Visible;
        }
示例#17
0
        private bool IgnoreHotkey()
        {
            var ignore = _settings.IgnoreHotkeysOnFullscreen && WindowIntelopHelper.IsWindowFullscreen();

            return(ignore);
        }