コード例 #1
0
        public void SetThumbButtonInfos()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ITaskbarButtonService  taskbarService    = taskbarServiceImpl;
            TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo()
            {
                Description = "thumbButton1"
            };
            TaskbarThumbButtonInfo thumbButtonInfo_2 = new TaskbarThumbButtonInfo()
            {
                Description = "thumbButton2"
            };

            taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1);
            taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_2);
            AssertHelper.AssertEnumerablesAreEqual(new ThumbButtonInfo[] {
                new ThumbButtonInfo()
                {
                    Description = "thumbButton1"
                },
                new ThumbButtonInfo()
                {
                    Description = "thumbButton2"
                },
            }, RealWindow.TaskbarItemInfo.ThumbButtonInfos, true, new string[] { "Command" });
        }
コード例 #2
0
        public void TaskbarThumbButtonBindCommandWithParameter()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ButtonViewModel        viewModel         = new ButtonViewModel();
            ITaskbarButtonService  taskbarService    = taskbarServiceImpl;
            TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo();

            BindingOperations.SetBinding(thumbButtonInfo_1, TaskbarThumbButtonInfo.CommandParameterProperty, new Binding("CommandParameter")
            {
                Source = viewModel, Mode = BindingMode.OneWay
            });
            BindingOperations.SetBinding(thumbButtonInfo_1, TaskbarThumbButtonInfo.CommandProperty, new Binding("Command")
            {
                Source = viewModel, Mode = BindingMode.OneWay
            });
            taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1);
            int?parameter = null;

            viewModel.Command          = new DelegateCommand <int?>(p => parameter = p);
            viewModel.CommandParameter = 13;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Command.Execute(RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].CommandParameter);
            Assert.AreEqual(13, parameter);
        }
コード例 #3
0
            public ThumbButtonInfoCommand(TaskbarThumbButtonInfo taskbarThumbButtonInfo)
            {
                ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo;

                Click           = taskbarThumbButtonInfoInternal.Click;
                Action          = taskbarThumbButtonInfo.Action;
                InternalCommand = taskbarThumbButtonInfo.Command;
            }
コード例 #4
0
 static void UnsubscribeFromTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo)
 {
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty);
 }
コード例 #5
0
        static void OnTaskbarThumbButtonInfoPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e, Action <TaskbarThumbButtonInfo, ThumbButtonInfo> setPropertyAction)
        {
            TaskbarThumbButtonInfo taskbarThumbButtonInfo = (TaskbarThumbButtonInfo)d;

            if (GetDoNotProcessPropertyChanged(taskbarThumbButtonInfo))
            {
                return;
            }
            ThumbButtonInfo thumbButtonInfo = GetThumbButtonInfo(taskbarThumbButtonInfo).Content;

            ButtonInfoSetProperty(taskbarThumbButtonInfo, thumbButtonInfo, setPropertyAction);
        }
コード例 #6
0
 static void ThumbButtonInfoSetPropertiesCore(TaskbarThumbButtonInfo taskbarThumbButtonInfo, ThumbButtonInfo thumbButtonInfo)
 {
     thumbButtonInfo.CommandParameter    = taskbarThumbButtonInfo.CommandParameter;
     thumbButtonInfo.Command             = new ThumbButtonInfoCommand(taskbarThumbButtonInfo);
     thumbButtonInfo.Description         = taskbarThumbButtonInfo.Description;
     thumbButtonInfo.DismissWhenClicked  = taskbarThumbButtonInfo.DismissWhenClicked;
     thumbButtonInfo.ImageSource         = taskbarThumbButtonInfo.ImageSource;
     thumbButtonInfo.IsBackgroundVisible = taskbarThumbButtonInfo.IsBackgroundVisible;
     thumbButtonInfo.IsEnabled           = taskbarThumbButtonInfo.IsEnabled;
     thumbButtonInfo.IsInteractive       = taskbarThumbButtonInfo.IsInteractive;
     thumbButtonInfo.Visibility          = taskbarThumbButtonInfo.Visibility;
 }
コード例 #7
0
        public static TaskbarThumbButtonInfo UnWrap(ThumbButtonInfo thumbButtonInfo)
        {
            TaskbarThumbButtonInfo taskbarThumbButtonInfo = GetTaskbarThumbButtonInfo(thumbButtonInfo).Content;

            if (taskbarThumbButtonInfo == null)
            {
                taskbarThumbButtonInfo = new TaskbarThumbButtonInfo();
                ButtonInfoSetProperty(thumbButtonInfo, taskbarThumbButtonInfo, TaskbarThumbButtonInfoSetPropertiesCore);
                SetThumbButtonInfo(taskbarThumbButtonInfo, new Container <ThumbButtonInfo>(thumbButtonInfo));
            }
            return(taskbarThumbButtonInfo);
        }
コード例 #8
0
        public void BindTaskbarThumbButtonInfoCommand()
        {
            VM vm = VM.Create();

            RealWindow.DataContext = vm;
            TaskbarButtonService   taskbarServiceImpl = new TaskbarButtonService();
            TaskbarThumbButtonInfo bt = new TaskbarThumbButtonInfo();

            BindingOperations.SetBinding(bt, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand"));
            taskbarServiceImpl.ThumbButtonInfos.Add(bt);
            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            Assert.AreEqual(POCOViewModelExtensions.GetCommand(vm, x => x.Do()), bt.Command);
        }
コード例 #9
0
        static void CopyCommandIsNeeded(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo)
        {
            ThumbButtonInfoCommand command = thumbButtonInfo.Command as ThumbButtonInfoCommand;

            if (command != null)
            {
                CopyIfNeeded(taskbarThumbButtonInfo.Command, command.InternalCommand, x => taskbarThumbButtonInfo.Command = x);
                CopyIfNeeded(taskbarThumbButtonInfo.Action, command.Action, x => taskbarThumbButtonInfo.Action            = x);
                ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo;
                CopyIfNeeded(taskbarThumbButtonInfoInternal.Click, command.Click, x => taskbarThumbButtonInfoInternal.Click = x);
            }
            else
            {
                taskbarThumbButtonInfo.Command = command;
            }
        }
コード例 #10
0
        public void ThumbButtonPropertiesChanged()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ImageSource            imageSource1      = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico"));
            ImageSource            imageSource2      = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.ico"));
            ITaskbarButtonService  taskbarService    = taskbarServiceImpl;
            TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo()
            {
                Description         = "thumbButton1",
                IsEnabled           = true,
                IsInteractive       = true,
                IsBackgroundVisible = false,
                DismissWhenClicked  = false,
                Visibility          = Visibility.Visible,
                ImageSource         = imageSource1
            };

            taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1);
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Description         = "thumbButton2";
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsEnabled           = false;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsInteractive       = false;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsBackgroundVisible = true;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].DismissWhenClicked  = true;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Visibility          = Visibility.Collapsed;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].ImageSource         = imageSource2;
            EnqueueShowRealWindow();
            AssertHelper.AssertEnumerablesAreEqual(new TaskbarThumbButtonInfo[] {
                new TaskbarThumbButtonInfo()
                {
                    Description         = "thumbButton2",
                    IsEnabled           = false,
                    IsInteractive       = false,
                    IsBackgroundVisible = true,
                    DismissWhenClicked  = true,
                    Visibility          = Visibility.Collapsed,
                    ImageSource         = imageSource2
                },
            }, taskbarService.ThumbButtonInfos, true, new string[] { "ItemInfo" });
        }
コード例 #11
0
        static void OnThumbButtonInfoChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            TaskbarThumbButtonInfo      taskbarThumbButtonInfo = (TaskbarThumbButtonInfo)d;
            Container <ThumbButtonInfo> newValue = (Container <ThumbButtonInfo>)e.NewValue;
            Container <ThumbButtonInfo> oldValue = (Container <ThumbButtonInfo>)e.OldValue;

            if (oldValue.Content != null)
            {
                UnsubscribeFromThumbButtonInfoPropertiesChanged(oldValue.Content);
                if (GetTaskbarThumbButtonInfo(oldValue.Content).Content == taskbarThumbButtonInfo)
                {
                    SetTaskbarThumbButtonInfo(oldValue.Content, new Container <TaskbarThumbButtonInfo>(null));
                }
            }
            if (newValue.Content != null)
            {
                SetTaskbarThumbButtonInfo(newValue.Content, new Container <TaskbarThumbButtonInfo>(taskbarThumbButtonInfo));
                SubscribeToThumbButtonInfoPropertiesChanged(newValue.Content);
            }
        }
コード例 #12
0
        public void T207524()
        {
            VM vm = VM.Create();

            RealWindow.DataContext = vm;
            TaskbarButtonServiceTest taskbarServiceImpl = new TaskbarButtonServiceTest();
            TaskbarThumbButtonInfo   bt1 = new TaskbarThumbButtonInfo();
            TaskbarThumbButtonInfo   bt2 = new TaskbarThumbButtonInfo();
            TaskbarThumbButtonInfo   bt3 = new TaskbarThumbButtonInfo();

            BindingOperations.SetBinding(bt1, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand"));
            BindingOperations.SetBinding(bt2, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand"));
            BindingOperations.SetBinding(bt3, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand"));
            taskbarServiceImpl.ThumbButtonInfos.Add(bt1);
            taskbarServiceImpl.ThumbButtonInfos.Add(bt2);
            taskbarServiceImpl.ThumbButtonInfos.Add(bt3);
            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            Assert.AreEqual(1, taskbarServiceImpl.UpdateInternalItemsCount);
            EnqueueTestComplete();
        }
コード例 #13
0
 static void SubscribeToTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo)
 {
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty, new Binding("CommandParameter")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty, new Binding("Command")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty, new Binding("Description")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty, new Binding("DismissWhenClicked")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty, new Binding("ImageSource")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty, new Binding("IsBackgroundVisible")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty, new Binding("IsEnabled")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty, new Binding("IsInteractive")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty, new Binding("Visibility")
     {
         Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay
     });
 }
コード例 #14
0
        public void SetThumbButtonInfosClickAction()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ITaskbarButtonService  taskbarService         = taskbarServiceImpl;
            TaskbarThumbButtonInfo taskbarThumbButtonInfo = new TaskbarThumbButtonInfo()
            {
                Description = "xxx"
            };
            bool actionExecuted = false;
            bool clickExecuted  = false;

            taskbarThumbButtonInfo.Action = () => { actionExecuted = true; };
            taskbarThumbButtonInfo.Click += (s, e) => clickExecuted = true;

            taskbarService.ThumbButtonInfos.Add(taskbarThumbButtonInfo);
            ThumbButtonInfo thumbButtonInfo = RealWindow.TaskbarItemInfo.ThumbButtonInfos[0];

            ClickThumbButton(thumbButtonInfo);
            Assert.IsTrue(actionExecuted);
            Assert.IsTrue(clickExecuted);
        }
 public static Container<ThumbButtonInfo> GetThumbButtonInfo(TaskbarThumbButtonInfo d) { return (Container<ThumbButtonInfo>)d.GetValue(ThumbButtonInfoProperty); }
 public static void SetThumbButtonInfo(TaskbarThumbButtonInfo d, Container<ThumbButtonInfo> value) { d.SetValue(ThumbButtonInfoProperty, value); }
コード例 #17
0
 static void TaskbarThumbButtonInfoSetPropertiesCore(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo)
 {
     CopyIfNeeded(taskbarThumbButtonInfo.CommandParameter, thumbButtonInfo.CommandParameter, x => taskbarThumbButtonInfo.CommandParameter = x);
     CopyCommandIsNeeded(thumbButtonInfo, taskbarThumbButtonInfo);
     CopyIfNeeded(taskbarThumbButtonInfo.Description, thumbButtonInfo.Description, x => taskbarThumbButtonInfo.Description = x);
     CopyIfNeeded(taskbarThumbButtonInfo.DismissWhenClicked, thumbButtonInfo.DismissWhenClicked, x => taskbarThumbButtonInfo.DismissWhenClicked = x);
     CopyIfNeeded(taskbarThumbButtonInfo.ImageSource, thumbButtonInfo.ImageSource, x => taskbarThumbButtonInfo.ImageSource = x);
     CopyIfNeeded(taskbarThumbButtonInfo.IsBackgroundVisible, thumbButtonInfo.IsBackgroundVisible, x => taskbarThumbButtonInfo.IsBackgroundVisible = x);
     CopyIfNeeded(taskbarThumbButtonInfo.IsEnabled, thumbButtonInfo.IsEnabled, x => taskbarThumbButtonInfo.IsEnabled             = x);
     CopyIfNeeded(taskbarThumbButtonInfo.IsInteractive, thumbButtonInfo.IsInteractive, x => taskbarThumbButtonInfo.IsInteractive = x);
     CopyIfNeeded(taskbarThumbButtonInfo.Visibility, thumbButtonInfo.Visibility, x => taskbarThumbButtonInfo.Visibility          = x);
 }
 public static TaskbarThumbButtonInfo UnWrap(ThumbButtonInfo thumbButtonInfo) {
     TaskbarThumbButtonInfo taskbarThumbButtonInfo = GetTaskbarThumbButtonInfo(thumbButtonInfo).Content;
     if(taskbarThumbButtonInfo == null) {
         taskbarThumbButtonInfo = new TaskbarThumbButtonInfo();
         TaskbarThumbButtonInfoSetProperties(thumbButtonInfo, taskbarThumbButtonInfo);
         SetThumbButtonInfo(taskbarThumbButtonInfo, new Container<ThumbButtonInfo>(thumbButtonInfo));
     }
     return taskbarThumbButtonInfo;
 }
 static void ThumbButtonInfoSetProperties(TaskbarThumbButtonInfo taskbarThumbButtonInfo, ThumbButtonInfo thumbButtonInfo) {
     SetDoNotProcessPropertyChanged(thumbButtonInfo, true);
     try {
         thumbButtonInfo.CommandParameter = taskbarThumbButtonInfo.CommandParameter;
         thumbButtonInfo.Command = new ThumbButtonInfoCommand(taskbarThumbButtonInfo);
         thumbButtonInfo.Description = taskbarThumbButtonInfo.Description;
         thumbButtonInfo.DismissWhenClicked = taskbarThumbButtonInfo.DismissWhenClicked;
         thumbButtonInfo.ImageSource = taskbarThumbButtonInfo.ImageSource;
         thumbButtonInfo.IsBackgroundVisible = taskbarThumbButtonInfo.IsBackgroundVisible;
         thumbButtonInfo.IsEnabled = taskbarThumbButtonInfo.IsEnabled;
         thumbButtonInfo.IsInteractive = taskbarThumbButtonInfo.IsInteractive;
         thumbButtonInfo.Visibility = taskbarThumbButtonInfo.Visibility;
     } finally {
         SetDoNotProcessPropertyChanged(thumbButtonInfo, false);
     }
 }
 static void UnsubscribeFromTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo) {
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty);
     ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty);
 }
 public ThumbButtonInfoCommand(TaskbarThumbButtonInfo taskbarThumbButtonInfo) {
     ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo;
     Click = taskbarThumbButtonInfoInternal.Click;
     Action = taskbarThumbButtonInfo.Action;
     InternalCommand = taskbarThumbButtonInfo.Command;
 }
コード例 #22
0
 public static void SetThumbButtonInfo(TaskbarThumbButtonInfo d, Container <ThumbButtonInfo> value)
 {
     d.SetValue(ThumbButtonInfoProperty, value);
 }
コード例 #23
0
 public static Container <ThumbButtonInfo> GetThumbButtonInfo(TaskbarThumbButtonInfo d)
 {
     return((Container <ThumbButtonInfo>)d.GetValue(ThumbButtonInfoProperty));
 }
 static void SubscribeToTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo) {
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty, new Binding("CommandParameter") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty, new Binding("Command") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty, new Binding("Description") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty, new Binding("DismissWhenClicked") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty, new Binding("ImageSource") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty, new Binding("IsBackgroundVisible") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty, new Binding("IsEnabled") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty, new Binding("IsInteractive") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
     BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty, new Binding("Visibility") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay });
 }
 static void TaskbarThumbButtonInfoSetProperties(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo) {
     SetDoNotProcessPropertyChanged(taskbarThumbButtonInfo, true);
     try {
         taskbarThumbButtonInfo.CommandParameter = thumbButtonInfo.CommandParameter;
         ThumbButtonInfoCommand command = thumbButtonInfo.Command as ThumbButtonInfoCommand;
         if(command != null) {
             taskbarThumbButtonInfo.Command = command.InternalCommand;
             taskbarThumbButtonInfo.Action = command.Action;
             ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo;
             taskbarThumbButtonInfoInternal.Click = command.Click;
         } else {
             taskbarThumbButtonInfo.Command = command;
         }
         taskbarThumbButtonInfo.Description = thumbButtonInfo.Description;
         taskbarThumbButtonInfo.DismissWhenClicked = thumbButtonInfo.DismissWhenClicked;
         taskbarThumbButtonInfo.ImageSource = thumbButtonInfo.ImageSource;
         taskbarThumbButtonInfo.IsBackgroundVisible = thumbButtonInfo.IsBackgroundVisible;
         taskbarThumbButtonInfo.IsEnabled = thumbButtonInfo.IsEnabled;
         taskbarThumbButtonInfo.IsInteractive = thumbButtonInfo.IsInteractive;
         taskbarThumbButtonInfo.Visibility = thumbButtonInfo.Visibility;
     } finally {
         SetDoNotProcessPropertyChanged(taskbarThumbButtonInfo, false);
     }
 }