using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Controls; using System.Windows.Interop; namespace smx_config { public partial class ProgressWindow: Window { private const int GWL_STYLE = -16; private const int WS_SYSMENU = 0x80000; [DllImport("user32.dll", SetLastError = true)] private static extern int GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll")] private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); public ProgressWindow() { InitializeComponent(); // Hide the window close button, since we can't easily cancel. Loaded += delegate(object sender, RoutedEventArgs e) { var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU); }; } public void SetTotal(int total) { ProgressBar.Maximum = total; } public void SetProgress(int progress) { ProgressBar.Value = progress; } public override void OnApplyTemplate() { base.OnApplyTemplate(); } } }