kopia lustrzana https://github.com/dl2alf/AirScout
147 wiersze
5.6 KiB
C#
147 wiersze
5.6 KiB
C#
using Vanara.Interop.DesktopWindowManager;
|
|
using AeroWizard;
|
|
using System.Windows.Forms;
|
|
|
|
namespace TestWizard
|
|
{
|
|
public partial class MyWizard : Form
|
|
{
|
|
private readonly Button extraBtn;
|
|
private readonly System.Text.StringBuilder events = new System.Text.StringBuilder(1024);
|
|
|
|
public MyWizard()
|
|
{
|
|
InitializeComponent();
|
|
//this.wizardControl1.TitleIcon = null;
|
|
foreach (var i in wizardControl1.Pages)
|
|
i.Commit += new System.EventHandler<AeroWizard.WizardPageConfirmEventArgs>(i_Commit);
|
|
wizardControl1.Finished += new System.EventHandler(wizardControl1_Finished);
|
|
extraBtn = new Button { Text = "Events", AutoSize = true, AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink, Anchor = AnchorStyles.Top | AnchorStyles.Right, Margin = Padding.Empty };
|
|
wizardControl1.AddCommandControl(extraBtn);
|
|
extraBtn.Click += extraBtn_Click;
|
|
SystemColorsChanged += MyWizard_SystemColorsChanged;
|
|
StyleChanged += MyWizard_StyleChanged;
|
|
if (System.Environment.OSVersion.Version.Major >= 6)
|
|
{
|
|
DesktopWindowManager.ColorizationColorChanged += DesktopWindowManager_ColorizationColorChanged;
|
|
DesktopWindowManager.CompositionChanged += DesktopWindowManager_CompositionChanged;
|
|
}
|
|
Microsoft.Win32.SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
|
|
}
|
|
|
|
void MyWizard_StyleChanged(object sender, System.EventArgs e)
|
|
{
|
|
bool ncre = false, clk = false; Padding cbb = Padding.Empty, efb = Padding.Empty;
|
|
try
|
|
{
|
|
ncre = this.GetWindowAttribute<bool>(DesktopWindowManager.GetWindowAttr.NonClientRenderingEnabled);
|
|
efb = this.GetWindowAttribute<Padding>(DesktopWindowManager.GetWindowAttr.ExtendedFrameBounds);
|
|
cbb = this.GetWindowAttribute<Padding>(DesktopWindowManager.GetWindowAttr.CaptionButtonBounds);
|
|
clk = System.Environment.OSVersion.Version.Minor >= 2 && this.GetWindowAttribute<bool>(DesktopWindowManager.GetWindowAttr.Cloaked);
|
|
}
|
|
catch { }
|
|
events.AppendFormat("{0:s}: Style (NCRend:{1}, Clk:{2}, CapBtn:{3}, ExtFrm:{4}\n", System.DateTime.Now, ncre, clk, cbb, efb);
|
|
}
|
|
|
|
void MyWizard_SystemColorsChanged(object sender, System.EventArgs e)
|
|
{
|
|
bool ncre = this.GetWindowAttribute<bool>(DesktopWindowManager.GetWindowAttr.NonClientRenderingEnabled);
|
|
bool clk = System.Environment.OSVersion.Version.Minor >= 2 && this.GetWindowAttribute<bool>(DesktopWindowManager.GetWindowAttr.Cloaked);
|
|
Padding cbb = this.GetWindowAttribute<Padding>(DesktopWindowManager.GetWindowAttr.CaptionButtonBounds);
|
|
Padding efb = this.GetWindowAttribute<Padding>(DesktopWindowManager.GetWindowAttr.ExtendedFrameBounds);
|
|
events.AppendFormat("{0:s}: System colors (NCRend:{1}, Clk:{2}, CapBtn:{3}, ExtFrm:{4}\n", System.DateTime.Now, ncre, clk, cbb, efb);
|
|
}
|
|
|
|
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
|
|
{
|
|
base.OnClosing(e);
|
|
if (System.Environment.OSVersion.Version.Major >= 6)
|
|
{
|
|
DesktopWindowManager.ColorizationColorChanged -= DesktopWindowManager_ColorizationColorChanged;
|
|
DesktopWindowManager.CompositionChanged -= DesktopWindowManager_CompositionChanged;
|
|
}
|
|
Microsoft.Win32.SystemEvents.DisplaySettingsChanged -= SystemEvents_DisplaySettingsChanged;
|
|
}
|
|
|
|
void extraBtn_Click(object sender, System.EventArgs e)
|
|
{
|
|
MessageBox.Show(events.ToString());
|
|
}
|
|
|
|
void SystemEvents_DisplaySettingsChanged(object sender, System.EventArgs e)
|
|
{
|
|
events.AppendFormat("{0:s}: Display settings\n", System.DateTime.Now);
|
|
}
|
|
|
|
void DesktopWindowManager_CompositionChanged(object sender, System.EventArgs e)
|
|
{
|
|
events.AppendFormat("{0:s}: Composition ({1})\n", System.DateTime.Now, DesktopWindowManager.IsCompositionEnabled() ? "On" : "Off");
|
|
}
|
|
|
|
void DesktopWindowManager_ColorizationColorChanged(object sender, System.EventArgs e)
|
|
{
|
|
events.AppendFormat("{0:s}: Colorization color (0x{1:x})\n", System.DateTime.Now, DesktopWindowManager.CompositionColor.ToArgb());
|
|
}
|
|
|
|
void wizardControl1_Finished(object sender, System.EventArgs e)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine("--> Wizard finished.");
|
|
}
|
|
|
|
void i_Commit(object sender, AeroWizard.WizardPageConfirmEventArgs e)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine($"--> Page {e.Page.Name} committed.");
|
|
}
|
|
|
|
private void commandLink1_Click(object sender, System.EventArgs e)
|
|
{
|
|
wizardControl1.NextPage();
|
|
}
|
|
|
|
private void commandLink2_Click(object sender, System.EventArgs e)
|
|
{
|
|
wizardControl1.NextPage(endPage);
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, System.EventArgs e)
|
|
{
|
|
if (!initMiddle)
|
|
DesktopWindowManager.EnableComposition(checkBox1.Checked);
|
|
}
|
|
|
|
private bool initMiddle = false;
|
|
|
|
private void middlePage_Initialize(object sender, AeroWizard.WizardPageInitEventArgs e)
|
|
{
|
|
initMiddle = true;
|
|
if (!System.IO.File.Exists(System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.System), "dwmapi.dll")))
|
|
checkBox1.Enabled = false;
|
|
else
|
|
checkBox1.Checked = DesktopWindowManager.IsCompositionEnabled();
|
|
wizardControl1.FinishButtonText = "Finish";
|
|
initMiddle = false;
|
|
}
|
|
|
|
private void checkBox2_CheckedChanged(object sender, System.EventArgs e)
|
|
{
|
|
wizardControl1.SelectedPage.AllowNext = checkBox2.Checked;
|
|
wizardControl1.SelectedPage.AllowBack = !checkBox2.Checked;
|
|
}
|
|
|
|
private void endPage_Initialize(object sender, AeroWizard.WizardPageInitEventArgs e)
|
|
{
|
|
wizardControl1.FinishButtonText = "Sorry, but you are hosed.";
|
|
}
|
|
|
|
private void introPage_HelpClicked(object sender, System.EventArgs e)
|
|
{
|
|
MessageBox.Show("Clicked help");
|
|
}
|
|
|
|
private void introPage_Initialize(object sender, AeroWizard.WizardPageInitEventArgs e)
|
|
{
|
|
//MessageBox.Show("Page initialized");
|
|
}
|
|
}
|
|
}
|