using CommunityToolkit.Mvvm.ComponentModel;
|
using HMI.Base;
|
using HMI.UI.DpUtil;
|
using HMI.UI.MDI;
|
using System.ComponentModel;
|
using System.IO;
|
using System.Windows;
|
|
namespace Plugin.DODriverControl
|
{
|
/// <summary>
|
/// DOControl.xaml 的交互逻辑
|
/// </summary>
|
[ObservableObject]
|
public partial class DOControl : SimpleMaskControl
|
{
|
public DOControl()
|
{
|
this.DataContext = this;
|
InitializeComponent();
|
}
|
|
[ObservableProperty]
|
private string workspaceSetting;
|
|
public override void InitFinish()
|
{
|
WorkspaceSetting = Path.Combine(BaseFolder, "Workspace.xml");
|
base.InitFinish();
|
}
|
|
private List<SingleControl> controls = new List<SingleControl>();
|
|
private List<CanvasPosition> InitGridSize()
|
{
|
List<CanvasPosition> result = new List<CanvasPosition>();
|
result.Add(new CanvasPosition
|
{
|
Left = 0,
|
Top = 0,
|
Width = 0.1 * ActualWidth,
|
Height = 0.5 * ActualHeight
|
});
|
result.Add(new CanvasPosition
|
{
|
Left = 0.1 * ActualWidth + 2,
|
Top = 0,
|
Width = 0.5 * ActualWidth - 4,
|
Height = ActualHeight,
|
});
|
|
result.Add(new CanvasPosition
|
{
|
Left = 0.6 * ActualWidth + 2,
|
Top = 0,
|
Width = 0.4 * ActualWidth - 2,
|
Height = 0.5 * ActualHeight - 2
|
});
|
|
result.Add(new CanvasPosition
|
{
|
Left = 0,
|
Top = 0.5 * ActualHeight + 2,
|
Width = 0.1 * ActualWidth - 2,
|
Height = 0.5 * ActualHeight - 2
|
});
|
|
result.Add(new CanvasPosition
|
{
|
Left = 0.6 * ActualWidth + 2,
|
Top = 0.5 * ActualHeight + 2,
|
Width = 0.4 * ActualWidth - 2,
|
Height = 0.5 * ActualHeight - 2
|
});
|
|
return result;
|
}
|
|
public override void Active()
|
{
|
foreach (var control in controls)
|
{
|
control.Active();
|
}
|
base.Active();
|
}
|
|
public override void DeActive()
|
{
|
foreach (var control in controls)
|
{
|
control.DeActive();
|
}
|
base.DeActive();
|
}
|
|
public override void OnClose(object sender, CancelEventArgs e)
|
{
|
Dispatcher.Invoke(() =>
|
{
|
foreach (var control in controls)
|
{
|
control.Close();
|
}
|
});
|
base.DoClose(sender, e);
|
}
|
|
private void LoadSingleControl()
|
{
|
var ps = InitGridSize();
|
var control = new SingleControl("DIO", BaseFolder)
|
{
|
log = log
|
};
|
controls.Add(control);
|
workspace.AddInnerWindow(control.name, new InnerWindow()
|
{
|
Title = control.name,
|
Content = control
|
});
|
|
//var control2 = new SingleControl("DIO2", BaseFolder)
|
//{
|
// log = log
|
//};
|
//controls.Add(control2);
|
//workspace.AddInnerWindow(control2.name, new InnerWindow()
|
//{
|
// Title = control2.name,
|
// Content = control2
|
//});
|
}
|
|
private void PluginMaskControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
LoadSingleControl();
|
Loaded -= PluginMaskControl_Loaded;
|
}
|
}
|
}
|