Exemple #1
0
        private void MenuBarPanelViewToggled(object sender, RoutedEventArgs e)
        {
            var          viewPanel = (MenuItem)sender;
            string       widthResourceKey;
            string       minWidthResourceKey;
            int          panelColumnIndex;
            GridSplitter columnsGridSplitter;

            if (viewPanel.Header.ToString().ToLower().Contains("instance"))
            {
                widthResourceKey    = "LeftPanelWidth";
                minWidthResourceKey = "LeftPanelMinWidth";
                panelColumnIndex    = 0;
                columnsGridSplitter = InstanceTabsGridSplitter;
            }
            else
            {
                widthResourceKey    = "RightPanelWidth";
                minWidthResourceKey = "RightPanelMinWidth";
                panelColumnIndex    = 4;
                columnsGridSplitter = TabsResultsGridSplitter;
            }

            if (viewPanel.IsChecked)
            {
                var width    = ((GridLength)MainViewGrid.FindResource(widthResourceKey)).Value;
                var minWidth = (double)MainViewGrid.FindResource(minWidthResourceKey);
                MainViewGrid.ColumnDefinitions[panelColumnIndex].Width    = new GridLength(width);
                MainViewGrid.ColumnDefinitions[panelColumnIndex].MinWidth = minWidth;
                columnsGridSplitter.Visibility = Visibility.Visible;
            }
            else
            {
                MainViewGrid.ColumnDefinitions[panelColumnIndex].MinWidth = 0;
                MainViewGrid.ColumnDefinitions[panelColumnIndex].Width    = new GridLength(0);
                columnsGridSplitter.Visibility = Visibility.Collapsed;
            }
        }
Exemple #2
0
        public MainView()
        {
            InitializeComponent();
            DataContext = _viewmodel;
            Loaded     += (sender, args) =>
            {
                if (_viewmodel.SettingsTabViewModel.ShowWelcomeTabOnStart)
                {
                    _viewmodel.ShowTab(_viewmodel.WelcomeTabViewModel);
                }
            };
            _menuItemBottomMargin = (Thickness)ShowMenu.FindResource("MenuItemBottomMargin");

            _viewmodel.PartialUtilityTabViewModels.CollectionChanged += PartialUtilityTabsCollectionChanged;

            var tabViewSource = CollectionViewSource.GetDefaultView(TabControl.Items);

            tabViewSource.CollectionChanged += (sender, args) =>
            {
                if (args.Action == NotifyCollectionChangedAction.Add)
                {
                    TabControl.SelectedIndex = _viewmodel.Tabs.Count - 1;
                }
            };

            _viewmodel.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == nameof(_viewmodel.TabToSelect))
                {
                    if (TabControl.SelectedItem == _viewmodel.TabToSelect)
                    {
                        BringCurrentTabIntoView();
                    }
                    else
                    {
                        TabControl.SelectedItem = _viewmodel.TabToSelect;
                    }
                }
                else if (e.PropertyName == nameof(_viewmodel.CoefficientAssessmentTabViewModel))
                {
                    CoefficientAssessmentTabPropertyChanged();
                }
            };

            _viewmodel.Results.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName != nameof(_viewmodel.Results.K))
                {
                    return;
                }
                if (_viewmodel.Results.K.HasValue)
                {
                    var width    = ((GridLength)MainViewGrid.FindResource("RightPanelWidth")).Value;
                    var minWidth = (double)MainViewGrid.FindResource("RightPanelMinWidth");
                    MainViewGrid.ColumnDefinitions[4].Width    = new GridLength(width);
                    MainViewGrid.ColumnDefinitions[4].MinWidth = minWidth;
                    TabsResultsGridSplitter.Visibility         = Visibility.Visible;
                    ResultsPanelMenuItem.IsChecked             = true;
                }
                else
                {
                    MainViewGrid.ColumnDefinitions[4].MinWidth = 0;
                    MainViewGrid.ColumnDefinitions[4].Width    = new GridLength(0);
                    TabsResultsGridSplitter.Visibility         = Visibility.Collapsed;
                    ResultsPanelMenuItem.IsChecked             = false;
                }
            };
        }