將寫死改成活讀
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user