Пример #1
0
        private void ResetNavigation()
        {
            if (BundleRuntime.Instance.State == BundleRuntimeState.Stopping)
            {
                return;
            }

            Action resetNavigation = () =>
            { // 重新初始化TreeView
                SkinUserControl = new Settings();
                WelcomeControl  = new Introduction();

                LayoutDockPanel.Children.Clear();
                ContentQueue.Clear();
                OpenedPagesCache.Clear();
                HideSidebar();
                SideBars.Clear();
                SideBarSettings.Clear();
                TreeViewItemSelectionQueue.Clear();
                TopTreeViewItemNavigationNodeTuples.Clear();
                NavigationTreeView.Items.Clear();

                InitializeNavigationTreeView();

                if (BundleActivator.PermissionServiceTracker.IsServiceAvailable)
                {
                    SetCurrentUser(BundleActivator.PermissionServiceTracker.DefaultOrFirstService.CurrentUserName);
                }

                ShowContent(WelcomeControl);
            };

            Dispatcher.Invoke(resetNavigation); // 由界面代理线程来执行UI更新。
        }