Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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);
                    }
                }
            }));
        }