public void InitialPopulateTaskbar() { foreach (var wind in ProgramWindow.ProgramWindows) { try { if (!RunningProcesses.Contains(wind.Process.MainModule.FileName)) { RunningProcesses.Add(wind.Process.MainModule.FileName); } } catch { Debug.WriteLine("Process not added to list"); } } foreach (var s in RunningProcesses) { var programStackPanel = new TaskbarGroupStackPanel { Background = new SolidColorBrush(Color.FromArgb(0x01, 0x0, 0x0, 0x0)), VerticalAlignment = VerticalAlignment.Stretch, Margin = new Thickness(2, 0, 2, 0), Tag = s }; Taskband.Children.Add(programStackPanel); } foreach (var wind in ProgramWindow.ProgramWindows) { foreach (TaskbarGroupStackPanel t in Taskband.Children) { try { if (wind.Process.MainModule.FileName == t.Tag.ToString()) { t.ProgramWindowsList.Add(wind); } } catch { } } } foreach (TaskbarGroupStackPanel t in Taskband.Children) { //if (Taskband.ActualWidth >= Width) if (t.ProgramWindowsList.Count > 3) { t.ForceCombine = true; } t.CreateButtons(); } }
public void InsertCreatedWindow(WindowEventArgs e) { Taskband.Dispatcher.Invoke(new Action(() => { { bool addedToExistingGroup = false; foreach (TaskbarGroupStackPanel t in Taskband.Children) { try { if (e.Window.Process.MainModule.FileName == t.Tag.ToString()) { t.ProgramWindowsList.Add(e.Window); t.CreateButtons(); addedToExistingGroup = true; } } catch { } } if (!addedToExistingGroup) { var programStackPanel = new TaskbarGroupStackPanel { Background = new SolidColorBrush(Color.FromArgb(0x01, 0x0, 0x0, 0x0)), VerticalAlignment = VerticalAlignment.Stretch, Margin = new Thickness(2, 0, 2, 0), Tag = e.Window.Process.MainModule.FileName }; programStackPanel.ProgramWindowsList.Add(e.Window); programStackPanel.CreateButtons(); Taskband.Children.Add(programStackPanel); } } })); }