* UIForm: 多页面框架增加PageAdded,PageSelected,PageRemoved事件
This commit is contained in:
parent
cab4b45ad7
commit
1a2acc5a19
@ -77,6 +77,12 @@ namespace Sunny.UI
|
|||||||
_fillColor = UIStyles.Blue.TabControlBackColor;
|
_fillColor = UIStyles.Blue.TabControlBackColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
public IFrame Frame
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 禁止控件跟随窗体缩放
|
/// 禁止控件跟随窗体缩放
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -235,8 +241,6 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public bool SelectPage(Guid pageGuid) => Helper.SelectPage(pageGuid);
|
public bool SelectPage(Guid pageGuid) => Helper.SelectPage(pageGuid);
|
||||||
|
|
||||||
public void AddPage(UIPage page) => Helper.AddPage(page);
|
|
||||||
|
|
||||||
public bool RemovePage(int pageIndex) => Helper.RemovePage(pageIndex);
|
public bool RemovePage(int pageIndex) => Helper.RemovePage(pageIndex);
|
||||||
|
|
||||||
public bool RemovePage(Guid guid) => Helper.RemovePage(guid);
|
public bool RemovePage(Guid guid) => Helper.RemovePage(guid);
|
||||||
@ -254,6 +258,12 @@ namespace Sunny.UI
|
|||||||
foreach (var page in pages) AddPage(page);
|
foreach (var page in pages) AddPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddPage(UIPage page)
|
||||||
|
{
|
||||||
|
Helper.AddPage(page);
|
||||||
|
Frame?.DealPageAdded(page);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddPage(int pageIndex, UITabControl page) => Helper.AddPage(pageIndex, page);
|
public void AddPage(int pageIndex, UITabControl page) => Helper.AddPage(pageIndex, page);
|
||||||
|
|
||||||
public void AddPage(int pageIndex, UITabControlMenu page) => Helper.AddPage(pageIndex, page);
|
public void AddPage(int pageIndex, UITabControlMenu page) => Helper.AddPage(pageIndex, page);
|
||||||
@ -840,10 +850,17 @@ namespace Sunny.UI
|
|||||||
{
|
{
|
||||||
if (AutoClosePage)
|
if (AutoClosePage)
|
||||||
{
|
{
|
||||||
pages[i].Final();
|
Frame.DealPageRemoved(pages[i]);
|
||||||
pages[i].Close();
|
|
||||||
pages[i].Dispose();
|
try
|
||||||
pages[i] = null;
|
{
|
||||||
|
pages[i].Final();
|
||||||
|
pages[i].Close();
|
||||||
|
pages[i].Dispose();
|
||||||
|
pages[i] = null;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
* 2022-04-26: V3.1.8 屏蔽一些属性
|
* 2022-04-26: V3.1.8 屏蔽一些属性
|
||||||
* 2022-05-06: V3.1.8 可拖拽时Padding可以调整大小
|
* 2022-05-06: V3.1.8 可拖拽时Padding可以调整大小
|
||||||
* 2022-06-11: V3.1.9 弹窗默认关闭半透明遮罩
|
* 2022-06-11: V3.1.9 弹窗默认关闭半透明遮罩
|
||||||
|
* 2022-07-05: V3.2.1 多页面框架增加PageAdded,PageSelected,PageRemoved事件
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -2072,7 +2073,18 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
#region IFrame实现
|
#region IFrame实现
|
||||||
|
|
||||||
public UITabControl MainTabControl { get; set; }
|
private UITabControl mainTabControl;
|
||||||
|
|
||||||
|
[DefaultValue(null)]
|
||||||
|
public UITabControl MainTabControl
|
||||||
|
{
|
||||||
|
get => mainTabControl;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
mainTabControl = value;
|
||||||
|
mainTabControl.Frame = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public UIPage AddPage(UIPage page, int index)
|
public UIPage AddPage(UIPage page, int index)
|
||||||
{
|
{
|
||||||
@ -2089,6 +2101,12 @@ namespace Sunny.UI
|
|||||||
public UIPage AddPage(UIPage page)
|
public UIPage AddPage(UIPage page)
|
||||||
{
|
{
|
||||||
SetDefaultTabControl();
|
SetDefaultTabControl();
|
||||||
|
|
||||||
|
if (MainTabControl == null)
|
||||||
|
{
|
||||||
|
throw (new ApplicationException("未指定MainTabControl,无法承载多页面。"));
|
||||||
|
}
|
||||||
|
|
||||||
page.Frame = this;
|
page.Frame = this;
|
||||||
MainTabControl?.AddPage(page);
|
MainTabControl?.AddPage(page);
|
||||||
return page;
|
return page;
|
||||||
@ -2168,6 +2186,25 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public List<T> GetPages<T>() where T : UIPage => SetDefaultTabControl().MainTabControl?.GetPages<T>();
|
public List<T> GetPages<T>() where T : UIPage => SetDefaultTabControl().MainTabControl?.GetPages<T>();
|
||||||
|
|
||||||
|
public event OnUIPageChanged PageAdded;
|
||||||
|
|
||||||
|
public void DealPageAdded(UIPage page)
|
||||||
|
{
|
||||||
|
PageAdded?.Invoke(this, new UIPageEventArgs(page));
|
||||||
|
}
|
||||||
|
|
||||||
|
public event OnUIPageChanged PageSelected;
|
||||||
|
public void DealPageSelected(UIPage page)
|
||||||
|
{
|
||||||
|
PageSelected?.Invoke(this, new UIPageEventArgs(page));
|
||||||
|
}
|
||||||
|
|
||||||
|
public event OnUIPageChanged PageRemoved;
|
||||||
|
public void DealPageRemoved(UIPage page)
|
||||||
|
{
|
||||||
|
PageRemoved?.Invoke(this, new UIPageEventArgs(page));
|
||||||
|
}
|
||||||
|
|
||||||
#endregion IFrame实现
|
#endregion IFrame实现
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -34,6 +34,23 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public delegate void OnZoomScaleRectChanged(object sender, Rectangle info);
|
public delegate void OnZoomScaleRectChanged(object sender, Rectangle info);
|
||||||
|
|
||||||
|
public class UIPageEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public UIPage Page { get; set; }
|
||||||
|
|
||||||
|
public UIPageEventArgs()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public UIPageEventArgs(UIPage page)
|
||||||
|
{
|
||||||
|
Page = page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public delegate void OnUIPageChanged(object sender, UIPageEventArgs e);
|
||||||
|
|
||||||
public static class UIMessageDialog
|
public static class UIMessageDialog
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -65,5 +65,9 @@ namespace Sunny.UI
|
|||||||
T GetPage<T>() where T : UIPage;
|
T GetPage<T>() where T : UIPage;
|
||||||
|
|
||||||
List<T> GetPages<T>() where T : UIPage;
|
List<T> GetPages<T>() where T : UIPage;
|
||||||
|
|
||||||
|
void DealPageAdded(UIPage page);
|
||||||
|
void DealPageSelected(UIPage page);
|
||||||
|
void DealPageRemoved(UIPage page);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -454,6 +454,7 @@ namespace Sunny.UI
|
|||||||
public virtual void Init()
|
public virtual void Init()
|
||||||
{
|
{
|
||||||
Initialize?.Invoke(this, new EventArgs());
|
Initialize?.Invoke(this, new EventArgs());
|
||||||
|
Frame.DealPageSelected(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user