protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); //initialize tbIcon tbIcon = (TaskbarIcon)FindResource("tbIcon"); controller = new ControllerManager(); // Find the "close application" menu item System.Windows.Controls.MenuItem closeAppMenuItem = ( from System.Windows.Controls.MenuItem item in tbIcon.ContextMenu.Items where item.Name.Equals("tbIconClose") select item ).FirstOrDefault(); closeAppMenuItem.Click += CloseApplication; refreshTimer = new System.Timers.Timer(10000); // Execute initial battery query setControllerStatusBar(); // Query battery state every 10s refreshTimer.Elapsed += OnTimedEvent; refreshTimer.Enabled = true; }
private void setControllerStatusBar(ControllerManager controller) { TaskbarIcon tbIcon = (TaskbarIcon)FindResource("tbIcon"); if (controller.IsConnected()) { string tooltipText = "Controller Battery: ", iconLocation = ""; switch (controller.GetBatteryLevel()) { case SlimDX.XInput.BatteryLevel.Full: tooltipText += "Full"; iconLocation += "full"; break; case SlimDX.XInput.BatteryLevel.Medium: tooltipText += "Medium"; iconLocation += "medium"; break; case SlimDX.XInput.BatteryLevel.Low: tooltipText += "Low"; iconLocation += "low"; break; case SlimDX.XInput.BatteryLevel.Empty: tooltipText += "Empty"; iconLocation += "empty"; break; } tbIcon.ToolTipText = tooltipText; tbIcon.IconSource = new BitmapImage(new Uri("pack://application:,,,/Resources/" + iconLocation + "-battery.ico")); } else { tbIcon.ToolTipText = "Xbox controller not connected as Player 1, or not at all."; tbIcon.IconSource = new BitmapImage(new Uri("pack://application:,,,/Resources/not-connected.ico")); } MainWindow.AddChild(tbIcon); }