示例#1
0
        private void MainTabControl_ClosingItem(ItemActionCallbackArgs <TabablzControl> args)
        {
            RemoteTabItem tabItem = args.DragablzItem.Content as RemoteTabItem;

            if (tabItem != null)
            {
                tabItem.Closed?.Invoke(tabItem);
            }
        }
示例#2
0
 /// <summary>在主窗口选中选项卡</summary>
 public static void SelectedTabItem(RemoteTabItem tabItem)
 {
     if (tabItem != null)
     {
         MainWindow mainWindow = Application.Current.MainWindow as MainWindow;
         if (mainWindow != null)
         {
             mainWindow.MainTabControl.SelectedItem = tabItem;
         }
     }
 }
示例#3
0
 /// <summary>在主窗口移除选项卡</summary>
 public static void RemoveTabItem(RemoteTabItem tabItem)
 {
     if (tabItem != null)
     {
         MainWindow mainWindow = Application.Current.MainWindow as MainWindow;
         if (mainWindow != null)
         {
             mainWindow.MainTabControl.Items.Remove(tabItem);
         }
         tabItem.Closed?.Invoke(tabItem);
     }
 }
        public void Open(DbItemRemoteLink linkSettings, DbItemSetting itemSetting, bool jump)
        {
            _tabItem = MainWindow.AddTabItem(linkSettings.Name, this, jump);
            if (linkSettings.Password == null)
            {
                linkSettings.Password = "";
            }
            _tabItem.Closed = _tabItem_Closed;

            try
            {
                FinalItemSetting finalItemSetting = null;
                if (linkSettings.Type == (int)RemoteType.rdp)
                {
                    _remoteControl   = new RemoteControl_rdp(this);
                    finalItemSetting = new FinalItemSetting_rdp((DbItemSetting_rdp)itemSetting);
                }
                if (linkSettings.Type == (int)RemoteType.ssh)
                {
                    _remoteControl   = new RemoteControl_ssh(this);
                    finalItemSetting = new FinalItemSetting_ssh((DbItemSetting_ssh)itemSetting);
                }
                if (linkSettings.Type == (int)RemoteType.telnet)
                {
                    _remoteControl   = new RemoteControl_telnet(this);
                    finalItemSetting = new FinalItemSetting_telnet((DbItemSetting_telnet)itemSetting);
                }
                if (_remoteControl == null)
                {
                    throw new Exception("可能是不支持的远程连接类型。");
                }
                _remoteControl.Visibility  = Visibility.Collapsed;
                Panel_Animation.Visibility = Visibility.Visible;
                Grid.Children.Add(_remoteControl);

                _remoteControl.OnConnected  = _remoteControl_OnConnected;
                _remoteControl.OnFatalError = OnFatalError;
                _remoteControl.OnNonfatal   = OnNonfatal;
                _remoteControl.Closed       = Remove;
                _remoteControl.FullScreen   = FullScreen;

                _remoteControl.Connect(linkSettings, finalItemSetting);
                _startFullScreen = finalItemSetting.FullScreen;
            }
            catch (Exception e)
            {
                OnFatalError("错误", $"远程桌面连接失败。\n原因:{e.Message}");
            }
        }
示例#5
0
        /// <summary>在主窗口添加选项卡</summary>
        public static RemoteTabItem AddTabItem(string header, UserControl userControl, bool jump = false)
        {
            MainWindow mainWindow = Application.Current.MainWindow as MainWindow;

            if (mainWindow != null)
            {
                RemoteTabItem tabItem = new RemoteTabItem();
                tabItem.Header  = header;
                tabItem.Content = userControl;
                mainWindow.MainTabControl.Items.Add(tabItem);
                if (jump)
                {
                    mainWindow.MainTabControl.SelectedItem = tabItem;
                }
                return(tabItem);
            }
            return(null);
        }