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
{
///
/// DOControl.xaml 的交互逻辑
///
[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 controls = new List();
private List InitGridSize()
{
List result = new List();
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;
}
}
}