public SettingsWindow(FontFamily currentFont)
        {
            InitializeComponent();

            ColorPickerCanvas.SelectedColor =
                (Color?)ColorConverter.ConvertFromString(SettingsBackup.ActivePanelColorStatic);

            ResetButton.Click += (sender, args) =>
            {
                SettingsBackup.SetDefaults();
                switch (_choosedItemId)
                {
                case 0:
                    ColorPickerCanvas.SelectedColor =
                        (Color?)ColorConverter.ConvertFromString(SettingsBackup.ActivePanelColorStatic);
                    break;

                case 1:
                    ColorPickerCanvas.SelectedColor =
                        (Color?)ColorConverter.ConvertFromString(SettingsBackup.SelectedItemColorStatic);
                    break;
                }
            };

            ActivatedPanelColorButton.Click += (sender, args) =>
            {
                _choosedItemId = 0;
                ColorPickerCanvas.SelectedColor =
                    (Color?)ColorConverter.ConvertFromString(SettingsBackup.ActivePanelColorStatic);
            };

            SelectedItemColorButton.Click += (sender, args) =>
            {
                _choosedItemId = 1;
                ColorPickerCanvas.SelectedColor =
                    (Color?)ColorConverter.ConvertFromString(SettingsBackup.SelectedItemColorStatic);
            };
            ChooseFontFamilyButton.Click += (sender, args) =>
            {
                FontDialog dialog = new FontDialog {
                    Font = new Font(currentFont.Source, 20)
                };
                if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    SettingsBackup.FontFamilyStatic = new FontFamily(dialog.Font.Name);
                }
            };

            OkButton.Click     += (sender, args) => DialogResult = true;
            CancelButton.Click += (sender, args) => DialogResult = false;

            ColorPickerCanvas.SelectedColorChanged += ColorPickerCanvasOnSelectedColorChanged;
        }
        private void PanelOnMouseWheel(object sender, MouseWheelEventArgs e)
        {
            ListView listView = (ListView)sender;

            _isFirstFocused = listView.Name == FirstPanel.Name;
            SettingsBackup settingsBackup = new SettingsBackup();

            if (!Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                return;
            }

            if (e.Delta > 0)
            {
                if (_isFirstFocused)
                {
                    settingsBackup.FontSizeFirstPanel  += 5;
                    settingsBackup.ImageSizeFirstPanel += 10;
                }
                else
                {
                    settingsBackup.FontSizeSecondPanel  += 5;
                    settingsBackup.ImageSizeSecondPanel += 10;
                }

                listView.FontSize =
                    _isFirstFocused ? settingsBackup.FontSizeFirstPanel : settingsBackup.FontSizeSecondPanel;

                listView.ItemsSource = null;

                foreach (Item item in _isFirstFocused ? _firstItems : _secondItems)
                {
                    item.ImageSize = _isFirstFocused
                        ? settingsBackup.ImageSizeFirstPanel
                        : settingsBackup.ImageSizeSecondPanel;
                }
                listView.ItemsSource = _isFirstFocused ? _firstItems : _secondItems;
            }
            else if (e.Delta < 0)
            {
                if (_isFirstFocused)
                {
                    if (settingsBackup.FontSizeFirstPanel > 5)
                    {
                        settingsBackup.FontSizeFirstPanel -= 5;
                    }
                    if (settingsBackup.ImageSizeFirstPanel > 10)
                    {
                        settingsBackup.ImageSizeFirstPanel -= 10;
                    }
                }
                else
                {
                    if (settingsBackup.FontSizeSecondPanel > 5)
                    {
                        settingsBackup.FontSizeSecondPanel -= 5;
                    }
                    if (settingsBackup.ImageSizeSecondPanel > 10)
                    {
                        settingsBackup.ImageSizeSecondPanel -= 10;
                    }
                }

                listView.FontSize =
                    _isFirstFocused ? settingsBackup.FontSizeFirstPanel : settingsBackup.FontSizeSecondPanel;

                listView.ItemsSource = null;

                foreach (Item item in _isFirstFocused ? _firstItems : _secondItems)
                {
                    item.ImageSize = _isFirstFocused
                        ? settingsBackup.ImageSizeFirstPanel
                        : settingsBackup.ImageSizeSecondPanel;
                }
                listView.ItemsSource = _isFirstFocused ? _firstItems : _secondItems;
            }
        }
        public MainWindow()
        {
            Loaded += (sender, args) =>
            {
                foreach (string bookmark in SettingsBackup.BookmarksListStatic)
                {
                    MenuItem deleteItem = new MenuItem {
                        Header = "Delete"
                    };
                    MenuItem openItem = new MenuItem {
                        Header = "Open"
                    };

                    deleteItem.Click += DeleteItemOnClick;
                    openItem.Click   += OpenItemOnClick;

                    MenuItem item = new MenuItem {
                        Header = bookmark
                    };

                    item.Items.Add(deleteItem);
                    item.Items.Add(openItem);

                    BookmarksMenuItem.Items.Add(item);
                }
            };
            Closing += (sender, args) =>
            {
                if (File.Exists(SettingsBackup.SettingsFileName))
                {
                    File.Delete(SettingsBackup.SettingsFileName);
                }
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                List <string>        bookmarksList        =
                    (from MenuItem menuItem in BookmarksMenuItem.Items select menuItem.Header.ToString()).ToList();
                SettingsBackup settingsBackup = new SettingsBackup
                {
                    FirstPanelPath  = FirstPanelPath.Text,
                    SecondPanelPath = SecondPanelPath.Text,
                    BookmarksList   = bookmarksList
                };
                File.WriteAllText(SettingsBackup.SettingsFileName, javaScriptSerializer.Serialize(settingsBackup));
            };
            InitializeComponent();

            FirstPanel.PreviewMouseWheel  += PanelOnMouseWheel;
            SecondPanel.PreviewMouseWheel += PanelOnMouseWheel;

            FirstPanelButton.Content  = "Refresh";
            SecondPanelButton.Content = "Refresh";

            AddToBookmarksFirstButton.Content  = "Add to bookmarks";
            AddToBookmarksSecondButton.Content = "Add to bookmarks";

            AddToBookmarksFirstButton.Click  += AddToBookmarksFirstButtonOnClick;
            AddToBookmarksSecondButton.Click += AddToBookmarksSecondButtonOnClick;

            FirstPanelButton.Click  += (sender, args) => FillTable(true, FirstPanelPath.Text);
            SecondPanelButton.Click += (sender, args) => FillTable(false, SecondPanelPath.Text);

            FirstPanel.SelectionChanged  += PanelOnSelectionChanged;
            SecondPanel.SelectionChanged += PanelOnSelectionChanged;

            _focusedStyle = new Style(typeof(Control));
            try
            {
                _focusedStyle.Setters.Add(new Setter(BackgroundProperty,
                                                     new SolidColorBrush(
                                                         // ReSharper disable once PossibleNullReferenceException
                                                         (Color)ColorConverter.ConvertFromString(SettingsBackup.ActivePanelColorStatic)))); //fae1c0
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Can't find standart color");
                _focusedStyle.Setters.Add(new Setter(BackgroundProperty,
                                                     new SolidColorBrush(Colors.Blue)));
            }

            _standardStyle = new Style(typeof(Control));
            _standardStyle.Setters.Add(new Setter(BackgroundProperty,
                                                  new SolidColorBrush(Colors.White)));

            #region Clickers

            FirstPanelPath.KeyDown  += PathOnKeyDown;
            SecondPanelPath.KeyDown += PathOnKeyDown;

            FirstPanel.MouseDoubleClick  += PanelOnMouseDoubleClick;
            SecondPanel.MouseDoubleClick += PanelOnMouseDoubleClick;

            FirstPanel.KeyDown  += PanelOnKeyDown;
            SecondPanel.KeyDown += PanelOnKeyDown;

            #endregion

            FirstPanel.PreviewMouseDown  += PanelOnPreviewMouseDown;
            SecondPanel.PreviewMouseDown += PanelOnPreviewMouseDown;

            #region Menu

            NewFileMenuItem.Click += (sender, args) => CreateNewFile();
            NewFileFastKey.Click  += (sender, args) => CreateNewFile();

            NewFolderMenuItem.Click += (sender, args) => CreateNewFolder();
            NewFolderFastKey.Click  += (sender, args) => CreateNewFolder();

            DeleteFastKey.Click         += DeleteFastKeyOnClick;
            RenameFastKey.Click         += RenameFastKeyOnClick;
            CopyFastKey.Click           += CopyFastKeyOnClick;
            MoveFastKey.Click           += MoveFastKeyOnClick;
            CopyFastKeyWindows.Click    += CopyFastKeyWindowsOnClick;
            RenameTemplateFastKey.Click += RenameTemplateFastKeyOnClick;
            CheckHashSums.Click         += CheckHashSumsOnClick;
            Archive.Click   += ArchiveOnClick;
            Unarchive.Click += UnarchiveOnClick;

            SettingsMenuItem.Click += SettingsMenuItemOnClick;

            #endregion


            if (File.Exists("settings.json"))
            {
                try
                {
                    SettingsBackup unused =
                        (SettingsBackup)NewtonSoft.Deserialize(File.ReadAllText("settings.json"), typeof(SettingsBackup));
                }
                catch (Exception)
                {
                    SettingsBackup.SetDefaults();;
                }
                CheckPanelFocus();
            }
            else
            {
                SettingsBackup.SetDefaults();
            }

            FillTable(true, SettingsBackup.FirstPanelPathStatic);
            FillTable(false, SettingsBackup.SecondPanelPathStatic);
            _isFirstFocused = true;
            CheckPanelFocus();
            FirstPanel.Focus();
        }