2
0

將寫死改成活讀

This commit is contained in:
DangHome
2023-07-03 01:51:09 +08:00
parent a48d7b8d56
commit a8fd8f3f46
27 changed files with 703 additions and 546 deletions

View File

@@ -1,7 +1,8 @@
using CMM.Library.Method;
using CMM.Library.ViewModel;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
namespace DellMonitorControl;
@@ -16,25 +17,68 @@ public partial class ControlPanel : UserControl
InitializeComponent();
}
private void Border_MouseLeave(object sender, MouseEventArgs e)
public async Task Init()
{
await CMMCommand.ScanMonitor();
var monitors = await CMMCommand.ReadMonitorsData();
foreach (var m in monitors)
{
var status = await CMMCommand.GetMonPowerStatus(m.SerialNumber);
var ctrl = CreatControl(m, status);
sp.Children.Add(ctrl);
}
}
private async void ToggleButton_Checked(object sender, RoutedEventArgs e)
private StackPanel CreatControl(XMonitor monitorModel, string powerStatus)
{
var toggle = sender as Button;
var tag = toggle?.Tag.ToString();
var content = toggle?.Content as string;
var _sp = new StackPanel();
_sp.Orientation = Orientation.Vertical;
_sp.Margin = new Thickness(10, 5, 5, 0);
var tb = new TextBlock
{
Text = monitorModel.MonitorName,
HorizontalAlignment = HorizontalAlignment.Left,
Style = (Style)FindResource("LableStyle")
};
var btn = new Button
{
Tag = monitorModel.SerialNumber,
Content = powerStatus,
Style = (Style)FindResource("TextButtonStyle")
};
btn.Click += async (s, e) => await ToggleButton_Checked(s, e);
_sp.Children.Add(tb);
_sp.Children.Add(btn);
return _sp;
}
private void Border_MouseLeave(object sender, MouseEventArgs e)
{
}
private async Task ToggleButton_Checked(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
var tag = btn?.Tag.ToString();
var content = btn?.Content as string;
if (content == "Sleep")
{
await CMMCommand.Sleep(tag);
toggle!.Content = "PowerOn";
await CMMCommand.PowerOn(tag);
}
else
{
await CMMCommand.PowerOn(tag);
toggle!.Content = "Sleep";
await CMMCommand.Sleep(tag);
}
await Task.Delay(1000);
btn!.Content = await CMMCommand.GetMonPowerStatus(tag);
}
}