Beispiel #1
0
 internal static void SaveData(WindowStatusInfo data)
 {
     try
     {
         var file = new AggregateCustomSettingFile <string, WindowStatusInfo>("windowstatus.wins");
         file[ProcessHelper.Instance.FormatKey(KeyString)] = data;
     }
     catch (Exception e)
     {
         Console.WriteLine("保存窗口状态失败:" + e.Message);
     }
 }
Beispiel #2
0
        private void Win_Closed(object sender, WindowClosedEventArgs e)
        {
            RadWindow win = this.FindVisualParent <RadWindow>();

            if (win != null)
            {
                WindowStatusInfo info = new WindowStatusInfo()
                {
                    Width       = win.ActualWidth,
                    Height      = win.ActualHeight,
                    Left        = win.Left,
                    Top         = win.Top,
                    WindowState = win.WindowState
                };
                WindowStatusAutoSave.SaveData(info);
            }
        }
Beispiel #3
0
        private void onLoaded(object sender, RoutedEventArgs e)
        {
            #region 【测试SplitScreenPanel的RemoteCall调用】
            //Window testWin = new Window();
            //testWin.Width = 800;
            //testWin.Height = 600;
            //UserControl ctrl = (UserControl)RemoteCalls.Global.Call("CCTV2_VideoPlugin_CreateSplitPanel");
            //dynamic obj = new ExpandoObject();
            //obj.VideoId = "CCTV1_50BAD15900010301";
            //obj.Row = 0;
            //obj.Column = 0;
            //obj.RowSpan = 2;
            //obj.ColumnSpan = 2;
            //dynamic obj1 = new ExpandoObject();
            //obj1.VideoId = "CCTV1_50BAD15900020301";
            //obj1.Row = 0;
            //obj1.Column = 2;
            //obj1.RowSpan = 1;
            //obj1.ColumnSpan = 1;
            //dynamic obj2 = new ExpandoObject();
            //obj2.VideoId = "CCTV1_50BAD15900020302";
            //obj2.Row = 1;
            //obj2.Column = 2;
            //obj2.RowSpan = 1;
            //obj2.ColumnSpan = 1;
            //dynamic obj3 = new ExpandoObject();
            //obj3.VideoId = null;
            //obj3.Row = 2;
            //obj3.Column = 2;
            //obj3.RowSpan = 1;
            //obj3.ColumnSpan = 1;

            //RemoteCalls.Global.Call("CCTV2_VideoPlugin_PlayMultiVideos", ctrl, 3, new List<dynamic>() { obj, obj1, obj2, obj3 });
            //testWin.Content = ctrl;
            //ctrl.Background = Brushes.Black;
            //testWin.Show();
            //testWin.Closed += (s, ie) =>
            //{
            //    RemoteCalls.Global.Call("CCTV2_VideoPlugin_StopMultiVideos", ctrl);
            //};
            #endregion 【测试SplitScreenPanel的RemoteCall调用】

            RadWindow win = this.FindVisualParent <RadWindow>();
            if (win != null)
            {
                WindowStatusInfo info = WindowStatusAutoSave.LoadData();
                if (info != null)
                {
                    info.Left   = CheckLimited(info.Left, 0, SystemParameters.PrimaryScreenWidth - 100);
                    info.Top    = CheckLimited(info.Top, 0, SystemParameters.PrimaryScreenHeight - 100);
                    info.Width  = CheckLimited(info.Width, AppConstants.WindowMinWidth, SystemParameters.PrimaryScreenWidth);
                    info.Height = CheckLimited(info.Height, AppConstants.WindowMinHeight, SystemParameters.PrimaryScreenHeight);

                    win.BeginInit();
                    if (info.WindowState == WindowState.Normal)
                    {
                        win.Left   = info.Left;
                        win.Top    = info.Top;
                        win.Width  = info.Width;
                        win.Height = info.Height;
                    }
                    win.WindowState = info.WindowState;
                    win.EndInit();
                }
                win.Closed += Win_Closed;
                ViewModel.SettingModel.WindowState = win.WindowState;
                win.SetBinding(RadWindow.WindowStateProperty, BindingHelper.CreateBinding(this, BindingMode.TwoWay, "DataContext.SettingModel.WindowState"));
            }
        }