123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using PaintDotNet.Instrument;
- using System;
- using System.Windows.Forms;
- namespace PaintDotNet
- {
- class FloatingFormMethod
- {
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- /// <param name="workspace">AppWorkspace的引用</param>
- public static void ShowFloatForm(Form form, FloatingToolForm af, AppWorkspace workspace,bool isLeft = false)
- {
-
- new FloatingFormMethod(workspace).ShowFloatForm(form, af, isLeft);
- }
- /// <summary>
- /// AppWorkspace的引用
- /// </summary>
- private AppWorkspace appWorkspace;
- private FloatingFormMethod(AppWorkspace workspace)
- {
- this.appWorkspace = workspace;
- }
- /// <summary>
- /// 显示浮动窗口
- /// </summary>
- /// <param name="form">获取已经弹出的窗口对象</param>
- /// <param name="af">没有弹出的窗口对象则创建</param>
- private void ShowFloatForm(Form form, FloatingToolForm af,bool isLeft = false)
- {
- if (form == null || form.IsDisposed)
- {
- if (af == null)
- return;
- SnapObstacle obstacle = af.SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null && obstacle.EnableSave)
- {
- try
- {
- if (isLeft)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Left);
- }
- else
- {
- sm.LoadSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- }
- catch (Exception)
- {
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- }
- af.FormClosing += Af_FormClosing;
- }
- else
- sm.ParkObstacle(af, this.appWorkspace, HorizontalSnapEdge.Top, VerticalSnapEdge.Right);
- //af.StartPosition = FormStartPosition.CenterScreen;
- Form mainForm = appWorkspace.FindForm();
- if (mainForm != null)
- //mainForm.Activate();
- af.Show(mainForm/*MainForm.ActiveForm*/);
- }
- else
- {
- form.Activate();
- form.WindowState = FormWindowState.Normal;
- }
- }
- /// <summary>
- /// 浮动窗口消失时保存窗口位置信息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Af_FormClosing(object sender, FormClosingEventArgs e)
- {
- SnapObstacle obstacle = ((FloatingToolForm)sender).SnapObstacle;
- SnapManager sm = SnapManager.FindMySnapManager(this.appWorkspace);
- if (sm != null && obstacle.EnableSave)
- sm.SaveSnapObstacleData(SystemLayer.Settings.CurrentUser, obstacle);
- }
- }
- }
|