private void AddTrayIconWpf() {
            Application.Current.Dispatcher.Invoke(() => {
                var rhm = new MenuItem { Header = "RHM Settings", Command = RhmService.Instance.ShowSettingsCommand };
                rhm.SetBinding(UIElement.VisibilityProperty, new Binding {
                    Source = RhmService.Instance,
                    Path = new PropertyPath(nameof(RhmService.Active))
                });

                var restore = new MenuItem { Header = UiStrings.Restore };
                var close = new MenuItem { Header = UiStrings.Close };

                restore.Click += RestoreMenuItem_Click;
                close.Click += CloseMenuItem_Click;

                _icon = new TaskbarIcon {
                    Icon = AppIconService.GetTrayIcon(),
                    ToolTipText = AppStrings.Hibernate_TrayText,
                    ContextMenu = new ContextMenu {
                        Items = {
                            rhm,
                            restore,
                            new Separator(),
                            close
                        }
                    },
                    DoubleClickCommand = new DelegateCommand(WakeUp)
                };

            });
        }
示例#2
0
        private void SetBindingForIsChecked(System.Windows.Controls.MenuItem childMenuitem, string converterParameter)
        {
            Binding binding = new Binding("AuthorManager.Sorting");

            binding.Converter          = AuthorSortingToBool;
            binding.ConverterParameter = converterParameter;
            childMenuitem.SetBinding(System.Windows.Controls.MenuItem.IsCheckedProperty, binding);
        }
示例#3
0
        private void Hyperlink_Click(object sender, RoutedEventArgs e)
        {
            var hyperlink = (Hyperlink) sender;
            var vm = (TaskAreaItemsViewModel) hyperlink.DataContext;

            var contextMenu = new ContextMenu {PlacementTarget = (UIElement) hyperlink.Parent, Placement = PlacementMode.Right, HorizontalOffset = 14, DataContext = vm,
                Style = (Style) FindResource("TaskAreaContextMenuStyle")};

            bool prevWasGroup = false;
            foreach (TaskAreaViewModelBase item in vm.Items)
            {
                var group = item as TaskAreaCommandGroupViewModel;
                if (group != null)
                {
                    if (contextMenu.Items.Count > 0)
                        contextMenu.Items.Add(new Separator {Style = (Style) FindResource("TaskAreaSeparatorStyle")});

                    foreach (TaskAreaCommandViewModel command in group.Commands)
                    {
                        var menuItem = new MenuItem {Header = command.DisplayName, Command = command.Command, DataContext = command, Tag = group, Style = (Style) FindResource("TaskAreaMenuItemStyle")};
                        menuItem.Click += menuItem_Click;
                        if (command == group.SelectedCommand)
                        {
                            var geometry = new EllipseGeometry(new Point(0, 0), 3, 3);
                            var drawingBrush = new DrawingBrush(new GeometryDrawing {Brush = Brushes.Black, Geometry = geometry}) {Stretch = Stretch.None};
                            menuItem.Icon = new Image {Source = new DrawingImage(drawingBrush.Drawing)};
                        }
                        contextMenu.Items.Add(menuItem);
                    }
                    prevWasGroup = true;
                }
                else
                {
                    if (prevWasGroup)
                        contextMenu.Items.Add(new Separator {Style = (Style) FindResource("TaskAreaSeparatorStyle")});

                    prevWasGroup = false;
                    var command = item as TaskAreaCommandViewModel;
                    if (command != null)
                    {
                        var menuItem = new MenuItem {Header = command.DisplayName, Command = command.Command, DataContext = command, Style = (Style) FindResource("TaskAreaMenuItemStyle")};
                        contextMenu.Items.Add(menuItem);
                    }
                    else
                    {
                        var booleanItem = item as TaskAreaBooleanViewModel;
                        if (booleanItem != null)
                        {
                            var menuItem = new MenuItem {Header = booleanItem.DisplayName, DataContext = booleanItem, Style = (Style) FindResource("TaskAreaMenuItemStyle"), IsCheckable = true};
                            menuItem.SetBinding(MenuItem.IsCheckedProperty, "Value");
                            contextMenu.Items.Add(menuItem);
                        }
                    }
                }
            }
            contextMenu.IsOpen = true;
        }
示例#4
0
        public void SetupCustomUIElements(dynNodeView nodeUI)
        {
            this.dynamoViewModel = nodeUI.ViewModel.DynamoViewModel;
            watchTree            = new WatchTree();

            // MAGN-2446: Fixes the maximum width/height of watch node so it won't
            // go too crazy on us. Note that this is only applied to regular watch
            // node so it won't be limiting the size of image/3D watch nodes.
            //
            nodeUI.PresentationGrid.MaxWidth  = Configurations.MaxWatchNodeWidth;
            nodeUI.PresentationGrid.MaxHeight = Configurations.MaxWatchNodeHeight;
            nodeUI.PresentationGrid.Children.Add(watchTree);
            nodeUI.PresentationGrid.Visibility = Visibility.Visible;

            if (Root == null)
            {
                Root = new WatchViewModel(this.dynamoViewModel.VisualizationManager);
            }

            watchTree.DataContext = Root;

            RequestBindingUnhook += delegate
            {
                BindingOperations.ClearAllBindings(watchTree.treeView1);
            };

            RequestBindingRehook += delegate
            {
                var sourceBinding = new Binding("Children")
                {
                    Mode   = BindingMode.TwoWay,
                    Source = Root,
                };
                watchTree.treeView1.SetBinding(ItemsControl.ItemsSourceProperty, sourceBinding);
            };

            var checkedBinding = new Binding("ShowRawData")
            {
                Mode   = BindingMode.TwoWay,
                Source = Root
            };

            var rawDataMenuItem = new MenuItem
            {
                Header      = "Show Raw Data",
                IsCheckable = true,
            };

            rawDataMenuItem.SetBinding(MenuItem.IsCheckedProperty, checkedBinding);

            nodeUI.MainContextMenu.Items.Add(rawDataMenuItem);

            ((PreferenceSettings)this.Workspace.DynamoModel.PreferenceSettings).PropertyChanged += PreferenceSettings_PropertyChanged;

            Root.PropertyChanged += Root_PropertyChanged;
        }
        public LedgerEntryControl()
        {
            InitializeComponent();

            ContextMenu contextMenu = new ContextMenu();
            MenuItem voidMenuItem = new MenuItem() { Header = "Void" };
            voidMenuItem.SetBinding(MenuItem.CommandProperty, new Binding("Void"));
            contextMenu.Items.Add(voidMenuItem);
            ContextMenuService.SetContextMenu(this, contextMenu);
        }
 private static void AppendToContextMenu(ContextMenu menu, ISearchEngine engine)
 {
     var item = new MenuItem()
     {
         Header = "search on " + engine.Name,
         Tag = engine
     };
     item.Click += SearchStringOnEngine_OnClick;
     item.SetBinding(ItemsControl.ItemsSourceProperty, new Binding("InfoView.SeriesView.Source.Names"));
     menu.Items.Add(item);
 }
		public PointSelector()
		{
			markerChart.SetBinding(Panel.ZIndexProperty, new Binding("(Panel.ZIndex)") { Source = this });

			// initializing built-in commands
			removePointCommand = new LambdaCommand((param) => RemovePointExecute(param), RemovePointCanExecute);
			changeModeCommand = new LambdaCommand((param) => ChangeModeExecute(param), ChangeModeCanExecute);
			addPointCommand = new LambdaCommand((param) => AddPointExecute(param), AddPointCanExecute);

			InitializeComponent();

			// adding context menu binding to markers
			markerChart.AddPropertyBinding(DefaultContextMenu.PlotterContextMenuProperty, data =>
			{
				ObjectCollection menuItems = new ObjectCollection();

				MenuItem item = new MenuItem { Header = UIResources.PointSelector_RemovePoint, Command = PointSelectorCommands.RemovePoint, CommandTarget = this };
				item.SetBinding(MenuItem.CommandParameterProperty, new Binding());
				menuItems.Add(item);

				return menuItems;
			});

			// loading marker template
			var markerTemplate = (DataTemplate)Resources["markerTemplate"];
			markerChart.MarkerBuilder = new TemplateMarkerGenerator(markerTemplate);
			markerChart.ItemsSource = points;

			// adding bindings to commands from PointSelectorCommands static class
			CommandBinding removePointBinding = new CommandBinding(
				PointSelectorCommands.RemovePoint,
				RemovePointExecute,
				RemovePointCanExecute
				);
			CommandBindings.Add(removePointBinding);

			CommandBinding changeModeBinding = new CommandBinding(
				PointSelectorCommands.ChangeMode,
				ChangeModeExecute,
				ChangeModeCanExecute);
			CommandBindings.Add(changeModeBinding);

			CommandBinding addPointBinding = new CommandBinding(
				PointSelectorCommands.AddPoint,
				AddPointExecute,
				AddPointCanExecute);
			CommandBindings.Add(addPointBinding);

			// init add point menu item
			addPointMenuItem.Click += addPointMenuItem_Click;

			points.CollectionChanged += points_CollectionChanged;
		}
示例#8
0
        protected override DependencyObject GetContainerForItemOverride()
        {
            var item = new WMenuItem();

            item.SetBinding(HeaderedItemsControl.HeaderProperty, new System.Windows.Data.Binding("Text"));

            item.Click += (sender, args) =>
            {
                IsOpen = false;

                var menuItem = item.DataContext as MenuItem;
                if (menuItem != null)
                {
                    ((IMenuItemController)menuItem).Activate();
                }
            };
            return(item);
        }
示例#9
0
        protected override DependencyObject GetContainerForItemOverride()
        {
            var item = new System.Windows.Controls.MenuItem();

            item.SetBinding(HeaderedItemsControl.HeaderProperty, new System.Windows.Data.Binding("Text")
            {
                Converter = (System.Windows.Data.IValueConverter)WApplication.Current.Resources["LowerConverter"]
            });

            item.Click += (sender, args) =>
            {
                IsOpen = false;

                var menuItem = item.DataContext as MenuItem;
                if (menuItem != null)
                {
                    menuItem.Activate();
                }
            };
            return(item);
        }
示例#10
0
        private void CreateSystrayIcon()
        {
            if (ProgramSettings.Instance.SystrayDisplay)
            {
                if (MyNotifyIcon == null)
                {
                    try
                    {
                        MyNotifyIcon = new TaskbarIcon()
                            {
                                Name = "MyNotifyIcon",
                                VerticalAlignment = System.Windows.VerticalAlignment.Top,
                                Icon = new System.Drawing.Icon(Application.GetResourceStream(new Uri("pack://application:,,,/CIV;component/Icons/Application.ico")).Stream),
                                ContextMenu = new ContextMenu()
                            };

                        MyNotifyIcon.DoubleClickCommand = new DashboardShowCommand();
                        MyNotifyIcon.DoubleClickCommandParameter = this;

                        MyNotifyIcon.SetBinding(Hardcodet.Wpf.TaskbarNotification.TaskbarIcon.ToolTipTextProperty,
                                                new Binding("Text.Dashboard_Title") { Source = new CIVResourceManager() });

                        // Menu
                        MenuItem menu = new MenuItem()
                            {
                                Icon = new Image()
                                {
                                    Source = new BitmapImage(new Uri("pack://application:,,,/CIV;component/Images/Exit.png", UriKind.RelativeOrAbsolute)),
                                    HorizontalAlignment = System.Windows.HorizontalAlignment.Center,
                                    VerticalAlignment = System.Windows.VerticalAlignment.Center,
                                    Stretch = Stretch.None
                                }
                            };
                        menu.Click += miExit_Click;
                        menu.SetBinding(MenuItem.HeaderProperty,
                                        new Binding("Text.Dashboard_miExit") { Source = new CIVResourceManager() });

                        MyNotifyIcon.ContextMenu.Items.Add(menu);

                        // Contenu
                        Style style = new Style(typeof(ToolTip), null);
                        style.Setters.Add(new Setter(ContentControl.TemplateProperty,
                                          new ControlTemplate(typeof(ToolTip)) { VisualTree = new FrameworkElementFactory(typeof(ContentPresenter)) }));

                        ToolTip tip = new ToolTip()
                            {
                                Style = style,
                                Content = new QuickStats()
                            };

                        MyNotifyIcon.TrayToolTip = tip;

                    }
                    catch (Exception e) { LogEngine.Instance.Add(e, false); }
                }
            }
            else
            {
                if (MyNotifyIcon != null)
                {
                    try
                    {
                        MyNotifyIcon.Icon.Dispose();
                        MyNotifyIcon.Dispose();
                        MyNotifyIcon = null;
                    }
                    catch (Exception e) { LogEngine.Instance.Add(e, false); }
                }
            }
        }
        Window win; // XAML��� ������ window

        #endregion Fields

        #region Constructors

        // ������.
        public XamlCruncher()
        {
            // File open�� save ��ȭ���ڸ� ���� ����
            strFilter = "XAML Files(*.xaml)|*.xaml|All Files(*.*)|*.*";

            // DockPanel�� ã���� �װͿ��� TextBox�� �����Ѵ�
            DockPanel dock = txtbox.Parent as DockPanel;
            dock.Children.Remove(txtbox);

            // 3���� ���� ������ ������ Gred�� �����ϰ� ũ��� 0���� �������
            //  Grid ���� ������ �����Ǵ� ������ ǥ ������ �����մϴ�
            Grid grid = new Grid();
            dock.Children.Add(grid);

            for (int i = 0; i < 3; i++)
            {
                RowDefinition rowdef = new RowDefinition();
                rowdef.Height = new GridLength(0);
                grid.RowDefinitions.Add(rowdef);

                ColumnDefinition coldef = new ColumnDefinition();
                coldef.Width = new GridLength(0);
                grid.ColumnDefinitions.Add(coldef);
            }

            // ù°���� ���� ũ�⸦ 100���� �ʱ�ȭ ��Ų��
            grid.RowDefinitions[0].Height =
                        new GridLength(100, GridUnitType.Star);
            grid.ColumnDefinitions[0].Width =
                        new GridLength(100, GridUnitType.Star);

            // 2���� GridSplitter ��Ʈ����  Grid�� �߰� ��ĭ��    GridSplitter ��Ʈ���� Grid ����� �ڵ� ���� �� �� �ֵ���  ���ش�.
            GridSplitter split = new GridSplitter();
            split.HorizontalAlignment = HorizontalAlignment.Stretch;
            split.VerticalAlignment = VerticalAlignment.Center;
            split.Height = 6;
            grid.Children.Add(split);
            Grid.SetRow(split, 1);
            Grid.SetColumn(split, 0);
            Grid.SetColumnSpan(split, 3);

            split = new GridSplitter();
            split.HorizontalAlignment = HorizontalAlignment.Center;
            split.VerticalAlignment = VerticalAlignment.Stretch;
            split.Width = 6;
            grid.Children.Add(split);
            Grid.SetRow(split, 0);
            Grid.SetColumn(split, 1);
            Grid.SetRowSpan(split, 3);

            // XAML ��ü�� �����ֱ� ���� Frame �� �����Ѵ�
            frameParent = new Frame();
            frameParent.NavigationUIVisibility = NavigationUIVisibility.Hidden;
            grid.Children.Add(frameParent);

            // TextBox�� Grid�� ������
            txtbox.TextChanged += TextBoxOnTextChanged;
            grid.Children.Add(txtbox);

            // �ε�� ������ XamlCruncherSettings�� ����ȯ ��Ų��
            settingsXaml = (XamlCruncherSettings)settings;

            // Xaml�޴��� �ֻ��� �Ŵ��� ���� ��Ų��
            MenuItem itemXaml = new MenuItem();
            itemXaml.Header = "_Xaml";
            menu.Items.Insert(menu.Items.Count - 1, itemXaml);

            // XamlOrientationMenuItem�� �����ϰ� �Ŵ��� �߰� ��Ų��
            itemOrientation =
                new XamlOrientationMenuItem(grid, txtbox, frameParent);
            itemOrientation.Orientation = settingsXaml.Orientation;
            itemXaml.Items.Add(itemOrientation);

            //�ǿ� ������ �����ϱ� ���� �޴�
            MenuItem itemTabs = new MenuItem();
            itemTabs.Header = "_�ǰ��ݼ���...";
            itemTabs.Click += TabSpacesOnClick;
            itemXaml.Items.Add(itemTabs);

            //�Ľ� �ߴ��� �ϱ����� �޴�
            MenuItem itemNoParse = new MenuItem();
            itemNoParse.Header = "_Suspend Parsing";
            itemNoParse.IsCheckable = true;
            itemNoParse.SetBinding(MenuItem.IsCheckedProperty,
                                        "IsSuspendParsing");
            itemNoParse.DataContext = this;
            itemXaml.Items.Add(itemNoParse);

            // Reparse�ϱ� ���� Ŀ�ǵ�
            InputGestureCollection collGest = new InputGestureCollection();
            collGest.Add(new KeyGesture(Key.F6));
            RoutedUICommand commReparse =
                new RoutedUICommand("_Reparse", "Reparse",
                                    GetType(), collGest);

            // Reparse�� ���� �޴�
            MenuItem itemReparse = new MenuItem();
            itemReparse.Command = commReparse;
            itemXaml.Items.Add(itemReparse);

            // Reparse�� ���� Ŀ�ǵ� ���ε�
            CommandBindings.Add(new CommandBinding(commReparse,
                                ReparseOnExecuted));

            // â�� �����ֱ��� �� Ŀ�ǵ�
            collGest = new InputGestureCollection();
            collGest.Add(new KeyGesture(Key.F7));
            RoutedUICommand commShowWin =
                new RoutedUICommand("Show _Window", "ShowWindow",
                                    GetType(), collGest);

            // â�� �����ֱ� ���� �޴�
            MenuItem itemShowWin = new MenuItem();
            itemShowWin.Command = commShowWin;
            itemXaml.Items.Add(itemShowWin);

            //â�� �����ֱ� ���� Ŀ�ǵ� ���ε�
            CommandBindings.Add(new CommandBinding(commShowWin,
                            ShowWindowOnExecuted, ShowWindowCanExecute));

            // Save as Startup Document �޴�
            MenuItem itemTemplate = new MenuItem();
            itemTemplate.Header = "Save as Startup _Document";
            itemTemplate.Click += NewStartupOnClick;
            itemXaml.Items.Add(itemTemplate);

            // Help �޴� �� ������ ����
            MenuItem itemXamlHelp = new MenuItem();
            itemXamlHelp.Header = "_Help...";
            itemXamlHelp.Click += HelpOnClick;
            MenuItem itemHelp = (MenuItem)menu.Items[menu.Items.Count - 1];
            itemHelp.Items.Insert(0, itemXamlHelp);

            // ���ο� StatusBar(����ǥ����) �׸�
            statusParse = new StatusBarItem();
            status.Items.Insert(0, statusParse);
            status.Visibility = Visibility.Visible;

               //��Ÿ ���� ��Ȳ�鿡 ���� �ڵ鷯�� ����
            //�ڵ尡 ��ġ�� ���ο� Ư¡�̳� ��ȭ�� ǥ���Ѵ�
            Dispatcher.UnhandledException += DispatcherOnUnhandledException;
        }
 private ContextMenu CreateContextMenu()
 {
     var retval = new ContextMenu();
     int maxColumns = MaxContextItems;
     foreach (var cd in ColumnSettings)
     {
         var item = new MenuItem
             {
                 Header = cd.DisplayName,
                 DataContext = cd,
                 Command = ToggleColumnVisibility,
                 CommandParameter = cd
             };
         var checkedBinding = new Binding("Visible");
         item.SetBinding(MenuItem.IsCheckedProperty, checkedBinding);
         retval.Items.Add(item);
         if (--maxColumns == 0) break;
     }
     if (ColumnSettings.Count > 3)
     {
         // TODO: Localize this
         var localizedMoreHeaderText = "More...";
         var editItem = new MenuItem {Header = localizedMoreHeaderText, Command = EditColumnDetails};
         retval.Items.Add(editItem);
     }
     return retval;
 }
示例#13
0
 private void BindMenuText(MenuItem menuItem, DependencyProperty property)
 {
     var binding = new Binding { Source = this, Path = new PropertyPath(property) };
     menuItem.SetBinding(HeaderedItemsControl.HeaderProperty, binding);
 }
示例#14
0
        private static void CreateMenuItemBinding(IViewAction action, MenuItem menuItem)
        {
            menuItem.SetBinding(VisibilityProperty, new Binding("Availability") { Source = action, Converter = new AvailabilityToVisibleConverter() });

            // If this is a real ViewAction, we can listen to changed events on the availability property, which can lead us to changing the visibility on the parent menu
            var viewAction = action as ViewAction;
            if (viewAction != null)
                viewAction.PropertyChanged += (s, e) =>
                                                  {
                                                      if (string.IsNullOrEmpty(e.PropertyName) || e.PropertyName == "Availability")
                                                          // We force the system to re-evaluate the Visibility property on the parent item, just in case the change in availability triggered a visibility change of the entire parent item
                                                          if (menuItem.Parent != null)
                                                          {
                                                              var parentMenu = menuItem.Parent as MenuItem;
                                                              if (parentMenu != null)
                                                                  parentMenu.SetBinding(VisibilityProperty, new Binding("Count") {Source = parentMenu.Items, Converter = new ItemsCollectionCountToVisibleConverter(parentMenu.Items)});
                                                          }
                                                  };
        }
示例#15
0
        private void CreateUserContextMenu()
        {
            UserContextMenu = new ContextMenu();
            var whisper = new MenuItem();
            whisper.Header = "Whisper";
            whisper.Click += WhisperOnClick;
            UserContextMenu.Items.Add(whisper);

            var addFriend = new MenuItem();
            addFriend.Header = "Add Friend";
            addFriend.Click += AddFriendOnClick;
            UserContextMenu.Items.Add(addFriend);

            var ban = new MenuItem();
            ban.Header = "Ban";
            ban.Click += BanOnClick;
            UserContextMenu.Items.Add(ban);

            var profile = new MenuItem();
            profile.Header = "Profile";
            profile.Click += ProfileOnClick;
            UserContextMenu.Items.Add(profile);

            var binding = new System.Windows.Data.Binding();
            binding.Mode = System.Windows.Data.BindingMode.OneWay;
            binding.Converter = new BooleanToVisibilityConverter();
            binding.Source = BanMenuVisible;

            ban.SetBinding(VisibilityProperty, binding);
        }
示例#16
0
        private void ShowNewQueryWindow(string fileName,
            bool show,
            Dictionary<string, ParameterResolver> resolvers)
        {
            if (QueryWindows.Activate(fileName))
            {
                return;
            }

            QueryModel queryModel = new QueryModel(this.Model);
            QueryEditorModel editor = new QueryEditorModel();
            editor.ParameterResolvers = resolvers;
            editor.LoadFile(fileName);
            QueryEditorView view = new QueryEditorView(editor, queryModel);
            QueryWindows.Create(view, show);

            // Add to the menu collection.
            MenuItem newMenu = new MenuItem();
            newMenu.Click += (s, eargs) => QueryWindows.Activate(view);
            newMenu.DataContext = view;
            Binding b = new Binding("Title");
            b.Source = view;
            newMenu.SetBinding(MenuItem.HeaderProperty, b);
            int index = QueryWindows.Count();
            if (String.IsNullOrEmpty(fileName))
            {
                //  Add ":" to give create an invalid filename.
                view.Title = string.Format("{0}{1}New Query", index, QueryEditorView.TitleSeperator);
            }
            else
            {
                view.Title = string.Format("{0}{1}{2}", index, QueryEditorView.TitleSeperator, fileName);
            }

            this.QueriesMenu.Items.Add(newMenu);

            // Remove from the menu collection upon close.
            CancelEventHandler closeHandler = (sender, args) =>
            {
                QueryWindows.Activate(view);
                view.Close(args);
            };

            queryModel.OnDisposed += (s, e1) =>
            {
                this.QueriesMenu.Items.Remove(newMenu);
                QueryWindows.Remove(view);
                MainModel.CloseEventHandler -= closeHandler;
            };

            MainModel.CloseEventHandler += closeHandler;
        }
示例#17
0
 private void Tile_Click(object sender, RoutedEventArgs e)
 {
     Tile tile = (Tile)sender;
     WorkItem item = (WorkItem)tile.Tag;
     if (WindowList.ContainsKey(item))
     {
         WindowList[item].Close += frame_Close;
         ContentControl.Content = WindowList[item];
         return;
     }
     WorkFrame frame = new WorkFrame();
     frame.MainTitle = item.Name;
     WorkPage content = item.GetWorkPage();
     WindowList.Add(item, frame);
     MenuItem menu = new MenuItem();
     menu.Tag = frame;
     menu.Click += Menu_Click;
     menu.SetBinding(MenuItem.HeaderProperty, new Binding { Source = frame, Mode = BindingMode.OneWay, Path = new PropertyPath("Content.Title") });
     WindowMenu.Items.Add(menu);
     frame.Close += frame_Close;
     frame.Close += (s, ee) =>
         {
             WindowList.Remove(item);
             WindowMenu.Items.Remove(menu);
             ContentControl.Content = StartMenu;
         };
     ContentControl.Content = frame;
     frame.NavigationService.NavigateTo(content);
 }
        private MenuItem MenuItemFromNavigationPaneItem(NavigationPaneItem item, bool isHiddenItem)
        {
            MenuItem menuItem = new MenuItem();

               menuItem.IsCheckable = true;

               Binding b = new Binding();
               b.Source = item;
               if (isHiddenItem)
            b.Path = new PropertyPath(Selector.IsSelectedProperty);
               else
               {
            b.Path = new PropertyPath(NavigationPane.IsItemExcludedProperty);
            b.Converter = new BooleanNegateConverter();
               }
               b.Mode = BindingMode.TwoWay;

               menuItem.SetBinding(MenuItem.IsCheckedProperty, b);

               if (item.ImageSmall != null)
               {
            Image image = new Image();
            image.Width = 16;
            image.Height = 16;
            image.Source = item.ImageSmall;
            menuItem.Icon = image;
               }
               menuItem.Header = XamlHelper.CloneUsingXaml(item.Header, true);

               return menuItem;
        }
示例#19
0
        private static void SetupContent(MenuItem menuItem, UICommand command)
        {
            menuItem.DataContext = command.ClientCommand;
            menuItem.SetBinding(MenuItem.HeaderProperty, "Label");

            if (UseCommandImage && menuItem.Icon == null && command != null)
            {
                Uri imageUri = CommandImageService.GetCommandImageUri(command);
                if (imageUri != null)
                {
                    try
                    {
                        menuItem.Icon = new Image
                        {
                            Stretch = Stretch.None,
                            Source = new BitmapImage(imageUri)
                        };
                    }
                    catch { }
                }
            }
        }
        object CloneContextMenuItem(object obj)
        {
            if (obj is Separator)
            {
                return new Separator();
            }

            var item = obj as MenuItem;

            if (item == null)
            {
                return obj;
            }

            var clone = new MenuItem();

            foreach (var dp in clonedMenuItemProperties)
            {
                var binding = BindingOperations.GetBinding(item, dp);

                if (binding != null)
                {
                    clone.SetBinding(dp, binding);
                }
                else
                {
                    clone.SetValue(dp, item.GetValue(dp));
                }
            }

            if (item.Items.Count > 0)
            {
                foreach (var child in item.Items.OfType<object>())
                {
                    clone.Items.Add(CloneContextMenuItem(child));
                }
            }

            return clone;
        }
        Window win; // Window created from XAML.

        #endregion Fields

        #region Constructors

        // Constructor.
        public XamlCruncher()
        {
            // New filter for File Open and Save dialog boxes.
            strFilter = "XAML Files(*.xaml)|*.xaml|All Files(*.*)|*.*";

            // Find the DockPanel and remove the TextBox from it.
            DockPanel dock = txtbox.Parent as DockPanel;
            dock.Children.Remove(txtbox);

            // Create a Grid with three rows and columns, all 0 pixels.
            Grid grid = new Grid();
            dock.Children.Add(grid);

            for (int i = 0; i < 3; i++)
            {
                RowDefinition rowdef = new RowDefinition();
                rowdef.Height = new GridLength(0);
                grid.RowDefinitions.Add(rowdef);

                ColumnDefinition coldef = new ColumnDefinition();
                coldef.Width = new GridLength(0);
                grid.ColumnDefinitions.Add(coldef);
            }

            // Initialize the first row and column to 100*.
            grid.RowDefinitions[0].Height =
                        new GridLength(100, GridUnitType.Star);
            grid.ColumnDefinitions[0].Width =
                        new GridLength(100, GridUnitType.Star);

            // Add two GridSplitter controls to the Grid.
            GridSplitter split = new GridSplitter();
            split.HorizontalAlignment = HorizontalAlignment.Stretch;
            split.VerticalAlignment = VerticalAlignment.Center;
            split.Height = 6;
            grid.Children.Add(split);
            Grid.SetRow(split, 1);
            Grid.SetColumn(split, 0);
            Grid.SetColumnSpan(split, 3);

            split = new GridSplitter();
            split.HorizontalAlignment = HorizontalAlignment.Center;
            split.VerticalAlignment = VerticalAlignment.Stretch;
            split.Width = 6;
            grid.Children.Add(split);
            Grid.SetRow(split, 0);
            Grid.SetColumn(split, 1);
            Grid.SetRowSpan(split, 3);

            // Create a Frame for displaying XAML object.
            frameParent = new Frame();
            frameParent.NavigationUIVisibility = NavigationUIVisibility.Hidden;
            grid.Children.Add(frameParent);

            // Put the TextBox in the Grid.
            txtbox.TextChanged += TextBoxOnTextChanged;
            grid.Children.Add(txtbox);

            // Case the loaded settings to XamlCruncherSettings.
            settingsXaml = (XamlCruncherSettings)settings;

            // Insert "Xaml" item on top-level menu.
            MenuItem itemXaml = new MenuItem();
            itemXaml.Header = "_Xaml";
            menu.Items.Insert(menu.Items.Count - 1, itemXaml);

            // Create XamlOrientationMenuItem & add to menu.
            itemOrientation =
                new XamlOrientationMenuItem(grid, txtbox, frameParent);
            itemOrientation.Orientation = settingsXaml.Orientation;
            itemXaml.Items.Add(itemOrientation);

            // Menu item to set tab spaces.
            MenuItem itemTabs = new MenuItem();
            itemTabs.Header = "_Tab Spaces...";
            itemTabs.Click += TabSpacesOnClick;
            itemXaml.Items.Add(itemTabs);

            // Menu item to suppress parsing.
            MenuItem itemNoParse = new MenuItem();
            itemNoParse.Header = "_Suspend Parsing";
            itemNoParse.IsCheckable = true;
            itemNoParse.SetBinding(MenuItem.IsCheckedProperty,
                                        "IsSuspendParsing");
            itemNoParse.DataContext = this;
            itemXaml.Items.Add(itemNoParse);

            // Command to reparse.
            InputGestureCollection collGest = new InputGestureCollection();
            collGest.Add(new KeyGesture(Key.F6));
            RoutedUICommand commReparse =
                new RoutedUICommand("_Reparse", "Reparse",
                                    GetType(), collGest);

            // Menu item to reparse.
            MenuItem itemReparse = new MenuItem();
            itemReparse.Command = commReparse;
            itemXaml.Items.Add(itemReparse);

            // Command binding to reparse.
            CommandBindings.Add(new CommandBinding(commReparse,
                                ReparseOnExecuted));

            // Command to show window.
            collGest = new InputGestureCollection();
            collGest.Add(new KeyGesture(Key.F7));
            RoutedUICommand commShowWin =
                new RoutedUICommand("Show _Window", "ShowWindow",
                                    GetType(), collGest);

            // Menu item to show window.
            MenuItem itemShowWin = new MenuItem();
            itemShowWin.Command = commShowWin;
            itemXaml.Items.Add(itemShowWin);

            // Command binding to show window.
            CommandBindings.Add(new CommandBinding(commShowWin,
                            ShowWindowOnExecuted, ShowWindowCanExecute));

            // Menu item to save as new startup document.
            MenuItem itemTemplate = new MenuItem();
            itemTemplate.Header = "Save as Startup _Document";
            itemTemplate.Click += NewStartupOnClick;
            itemXaml.Items.Add(itemTemplate);

            // Insert Help on Help menu.
            MenuItem itemXamlHelp = new MenuItem();
            itemXamlHelp.Header = "_Help...";
            itemXamlHelp.Click += HelpOnClick;
            MenuItem itemHelp = (MenuItem)menu.Items[menu.Items.Count - 1];
            itemHelp.Items.Insert(0, itemXamlHelp);

            // New StatusBar item.
            statusParse = new StatusBarItem();
            status.Items.Insert(0, statusParse);
            status.Visibility = Visibility.Visible;

            // Install handler for unhandled exception.
            // Comment out this code when experimenting with new features
            //   or changes to the program!
            Dispatcher.UnhandledException += DispatcherOnUnhandledException;
        }
示例#22
0
        private ContextMenu BuildTrayIconContextMenu()
        {
            var cm = new ContextMenu();

            MenuItem mi;

            mi = new MenuItem() { Header = "Show Mining Controller", FontWeight = FontWeights.Bold };
            mi.Click += (s, e) => { this.ShowSelf(); };
            cm.Items.Add(mi);

            cm.Items.Add(new Separator());

            mi = new MenuItem() { Header = "Snooze" };
            mi.SetBinding(MenuItem.CommandProperty, new Binding("SnoozeCommand") { Source = this.DataContext });
            cm.Items.Add(mi);

            mi = new MenuItem() { Header = "Miner Visibility", IsCheckable = true };
            mi.SetBinding(MenuItem.CommandProperty, new Binding("ToggleMinerCommand") { Source = this.DataContext });
            mi.SetBinding(MenuItem.IsCheckedProperty, new Binding("ShowMiner") { Source = this.DataContext, Mode = BindingMode.OneWay });
            cm.Items.Add(mi);

            cm.Items.Add(new Separator());

            mi = new MenuItem() { Header = "Exit" };
            mi.Click += (s, e) => { this.Close(); };
            cm.Items.Add(mi);

            return cm;
        }
		public DataBrowserControl(IEntityController controller)
		{
			if (controller == null)
				throw new ArgumentNullException("IEntityController<T> cannot be null");
			this.Controller = controller;
			
			//Fill the properties with "fresh" data
			Items = controller.GetDataSource();
			
			//Listen when the data changes so that we can update the properties holding the data
			controller.Changed += Controller_Changed;
			
			InitializeComponent();
			
			//Setting the background is required => when using DataBrowserControl as a popup
			//and it flows out of the window its background shouldn't be transparent
			dockPanel.Background = App.Current.MainWindow.Background;
			
			#region Mapping with column names
			foreach(KeyValuePair<string, string> item in controller.Mapping)
			{
				GridViewColumn column = new GridViewColumn
					{
						Header = item.Key,
						DisplayMemberBinding = new Binding(item.Value)
							{
								StringFormat = item.Value.Contains("PRICE") ? "C" : "",
								ConverterCulture = Thread.CurrentThread.CurrentCulture
							}
					};
				gridView.Columns.Add(column);
			}
			#endregion
			
			//Create binding to the current controller
			Binding controllerBinding = new Binding()
				{
					Source = this,
					Path = new PropertyPath("Controller"),
					Mode = BindingMode.OneWay
				};
			
			//Create binding to the selected item (reversed binding used for the sake of simplicity)
			Binding selecteditemBinding = new Binding()
				{
					Source = this.Controller,
					Path = new PropertyPath("SelectedItem"),
					Mode = BindingMode.OneWayToSource
				};
			EntitiesListView.SetBinding(ListView.SelectedItemProperty, selecteditemBinding);
			
			#region Context menu
			Style style = new Style(typeof (ListViewItem));
				
				ContextMenu contextMenu = new ContextMenu();
				
					MenuItem newMenuItem = new MenuItem()
						{
							Command = InvoiceManagerCommands.New,
							Icon = new Image()
								{
									Source = new BitmapImage(new Uri("/Resources/new.png", UriKind.Relative)),
									Width = 20,
									Height = 20
								}
						};
					newMenuItem.SetBinding(MenuItem.CommandParameterProperty, controllerBinding);
				contextMenu.Items.Add(newMenuItem);
				
					MenuItem editMenuItem = new MenuItem()
						{
							Command = InvoiceManagerCommands.Edit,
							Icon = new Image()
								{
									Source = new BitmapImage(new Uri("/Resources/Edit.png", UriKind.Relative)),
									Width = 20,
									Height = 20
								}
						};
					editMenuItem.SetBinding(MenuItem.CommandParameterProperty, controllerBinding);
				contextMenu.Items.Add(editMenuItem);
				
					MenuItem deleteMenuItem = new MenuItem()
						{
							Command = InvoiceManagerCommands.Delete,
							Icon = new Image()
								{
									Source = new BitmapImage(new Uri("/Resources/Delete.png", UriKind.Relative)),
									Width = 20,
									Height = 20
								}
						};
					deleteMenuItem.SetBinding(MenuItem.CommandParameterProperty, controllerBinding);
				contextMenu.Items.Add(deleteMenuItem);
				
			style.Setters.Add(new Setter(ListViewItem.ContextMenuProperty, contextMenu));
			Resources.Add(typeof (ListViewItem), style);
			#endregion
			
		}
 private void SetMenutItemVisibilityBinding(MenuItem menuItem)
 {
     //Binds the Visibility to the IsEnabled property for a given MenuItem
     //Essentially collapses items rather than gray them out when predicate is not matched
     var visibilityBinding = new Binding()
     {
         Source = menuItem,
         Path = new PropertyPath("IsEnabled"),
         Converter = new Utility.VisibilityConverter()
     };
     menuItem.SetBinding(MenuItem.VisibilityProperty, visibilityBinding);
 }
示例#25
0
        protected void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            var uc = (UserControl)sender;
            var cm = uc.ContextMenu;
            var ws = (WeiboStatus)DataContext;
            if (cm.Items.Count != 0)//all are ready
            {
                return;
            }

            cm.Items.Add(new MenuItem()
            {
                Header = "复制到剪贴板",
                Command = WeiZhiCommands.CopyTweet,
                CommandParameter = ws
            });
            cm.Items.Add(new MenuItem()
            {
                Header = string.Format("复制 @{0} 到剪贴板", ws.user.screen_name),
                Command = WeiZhiCommands.CopyName,
                CommandParameter = ws.user.screen_name
            });
            if (ws.has_rt)
            {
                cm.Items.Add(new MenuItem
                {
                    Header = "复制原推内容到剪贴板",
                    Command = WeiZhiCommands.CopyTweet,
                    CommandParameter = ws.retweeted_status
                });
                cm.Items.Add(new MenuItem
                {
                    Header = string.Format("复制 @{0} 到剪贴板", ws.retweeted_status.user.screen_name),
                    Command = WeiZhiCommands.CopyName,
                    CommandParameter = ws.retweeted_status.user.screen_name
                });
            }

            cm.Items.Add(new Separator());
            //cm.Items.Add(new MenuItem
            //{
            //    Header = "在浏览器中查看此微博",
            //    Command = WeiZhiCommands.ViewWeiboViaWeb,
            //    CommandParameter = ws
            //});
            cm.Items.Add(new MenuItem { Header = string.Format("在浏览器中查看 @{0}", ws.user.screen_name), Command = WeiZhiCommands.ViewUserViaWeb, CommandParameter = ws.user });
            if (ws.has_rt)
                cm.Items.Add(new MenuItem { Header = string.Format("在浏览器中查看 @{0}", ws.retweeted_status.user.screen_name), Command = WeiZhiCommands.ViewUserViaWeb, CommandParameter = ws.retweeted_status.user });
            if (!ws.url.is_empty)
            {
                if (ws.url.has_document)
                    cm.Items.Add(new MenuItem { Header = string.Format("在浏览器中查看 {0}", ws.url.short_path) , Command = WeiZhiCommands.NavigateUrl, CommandParameter = ws.url.url_short });
                if (ws.url.has_media)
                    cm.Items.Add(new MenuItem { Header = string.Format("在浏览器中播放 {0}", ws.url.short_path), Command = WeiZhiCommands.NavigateUrl, CommandParameter = ws.url.url_short });
            }
            if (ws.has_pic)
                cm.Items.Add(new MenuItem { Header = "打开图片", Command = WeiZhiCommands.NavigateUrl, CommandParameter = ws.bmiddle_pic });

            cm.Items.Add(new Separator());
            var fc = new MenuItem()
            {
                Command = WeiZhiCommands.FollowUnfollow,
                CommandParameter = ws.user
            };
            var bd = new Binding("user.following") { Converter = new FollowCommandConverter(ws.user.screen_name), Mode = BindingMode.OneWay };
            fc.SetBinding(HeaderedItemsControl.HeaderProperty, bd);
            cm.Items.Add(fc);

            if (ws.has_rt && ws.user.id != ws.retweeted_status.user.id)
            {
                var ff = new MenuItem
                {
                    Command = WeiZhiCommands.FollowUnfollow,
                    CommandParameter = ws.retweeted_status.user
                };
                var rbd = new Binding("retweeted_status.user.following") { Converter = new FollowCommandConverter(ws.retweeted_status.user.screen_name),Mode=BindingMode.OneWay };
                ff.SetBinding(HeaderedItemsControl.HeaderProperty, rbd);
                cm.Items.Add(ff);
                
            }
            cm.Items.Add(new Separator());
            cm.Items.Add(new MenuItem { Header = "转发/评论", Command = ((WeiboStatus)DataContext).show_editor, CommandParameter = ws });
            cm.Items.Add(new MenuItem { Header = "直接转发", Command = WeiZhiCommands.RetweetDirectly, CommandParameter = ws });

            var l = (ViewModelLocator)FindResource("Locator");
            var cid = l.AccessToken.id();
            if (cid == ws.user.id)
                cm.Items.Add(new MenuItem { Header = "删除", Command = WeiZhiCommands.DestroyStatus, CommandParameter = ws });
            if (ws.has_rt)
            {
                cm.Items.Add(new MenuItem
                {
                    Header = string.Format("转发 @{0}的原微博", ws.retweeted_status.user.screen_name),
                    Command = WeiZhiCommands.Retweet,
                    CommandParameter = ws.retweeted_status
                });
                cm.Items.Add(new MenuItem
                {
                    Header = string.Format("评论 @{0}的原微博", ws.retweeted_status.user.screen_name),
                    Command = WeiZhiCommands.Reply,
                    CommandParameter = ws.retweeted_status,
                });
            }

        }
        private static void AddFrameworkFoldersToContextMenu(ContextMenu menu)
        {
            var visibilityBinding = new Binding("Path")
                                    {
                                        Converter = new StringToVisibilityConverter(),
                                        ConverterParameter = "lib;content;tools;build"
                                    };

            var commandBinding = new Binding("AddContentFolderCommand");

            bool addSeparator = menu.Items.Count > 0;
            if (addSeparator)
            {
                var separator = new Separator();
                separator.SetBinding(VisibilityProperty, visibilityBinding);
                menu.Items.Insert(0, separator);
            }

            foreach (var pair in _frameworkFolders)
            {
                var item = new MenuItem
                           {
                               Header = String.Format(CultureInfo.CurrentCulture, "Add {0} folder", pair.Key),
                               Visibility = Visibility.Collapsed
                           };
                item.SetBinding(VisibilityProperty, visibilityBinding);

                string[] values = pair.Value;
                if (values.Length > 2)
                {
                    for (int i = 0; i < values.Length; i += 2)
                    {
                        var childItem = new MenuItem
                                        {
                                            Header = values[i],
                                            CommandParameter = values[i + 1]
                                        };
                        childItem.SetBinding(MenuItem.CommandProperty, commandBinding);
                        item.Items.Add(childItem);
                    }
                }
                else if (values.Length == 2)
                {
                    item.SetBinding(MenuItem.CommandProperty, commandBinding);
                    item.CommandParameter = values[1];
                }
                else
                {
                    // HACK: portable library menu item
                    item.SetBinding(MenuItem.CommandProperty, commandBinding);
                    item.CommandParameter = "portable";
                }

                menu.Items.Insert(0, item);
            }
        }
        /// <summary>
        /// コンテキストメニューを生成、バインドします。
        /// </summary>
        private void ContextMenuGen()
        {
            ContextMenu menu = new ContextMenu();
            // Check URL
            MenuItem menuItemCheckable = new MenuItem()
            {
                IsCheckable = true,
                Header = Properties.Resources.menuCheck
            };
            menuItemCheckable.SetBinding(MenuItem.IsCheckedProperty, new Binding("Check"));
            menu.Items.Add(menuItemCheckable);

            // Re-Auth
            MenuItem menuItemReAuth = new MenuItem();
            menuItemReAuth.Header = Properties.Resources.menuReauth;
            menuItemReAuth.Click += ReAuth;
            menu.Items.Add(menuItemReAuth);
            // About APP
            MenuItem menuItemAbout = new MenuItem();
            menuItemAbout.Header = string.Format(Properties.Resources.AboutThis, "TwVideoUp");
            menuItemAbout.Click += AboutApp;
            menu.Items.Add(menuItemAbout);

            ContextMenu = menu;
        }
示例#28
0
 private void InitialiseMessengerRegistrations()
 {
     Messenger.Default.Register<GenericMessage<object>>((object) this, (object) ViewModelMessages.ReloadTweetListView, (Action<GenericMessage<object>>) (o => this.TweetColumns.RaiseEvent(new RoutedEventArgs(FrameworkElement.LoadedEvent, (object) this.TweetColumns))));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.ResetColumnWidth, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o =>
       {
     if (this.viewModel.ColumnsToShow.IndexOf(o.Content as TweetListViewModel) <= -1)
       return;
     App.AppState.Accounts[this.viewModel.TwitterAccountID].Settings.Columns[(o.Content as TweetListViewModel).UniqueTweetListID].ColumnIsSetWidth = false;
     this.TweetColumns.RaiseEvent(new RoutedEventArgs(FrameworkElement.LoadedEvent, (object) this.TweetColumns));
       }));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.UpdateActualTweetText, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o => this.UpdateBoundTweetText()));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.NewTweetEditFocus, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o => this.NewTweetEdit.Focus()));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.SetNewTweetEntryOptionsContainer, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o => SettingsData.Instance.NewTweetEntryOptionsContainer = (FrameworkElement) this.NewTweetAndOptionsContainer));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.NoPopupColumn, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o =>
       {
     if (SettingsData.Instance.SelectedColumn != null)
       return;
     SettingsData.Instance.SelectedColumn = (UIElement) this.TweetColumns;
       }));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.NewTweetEditUpdateText, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o =>
       {
     this.NewTweetEdit.Document = new FlowDocument()
     {
       Blocks = {
     (Block) new Paragraph()
     {
       Inlines = {
         this.viewModel.ActualTweetText
       }
     }
       }
     };
     this.NewTweetEdit.CaretPosition = this.NewTweetEdit.CaretPosition.DocumentEnd;
     this.NewTweetEdit.Focus();
       }));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.SetPopupTarget, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o =>
       {
     if (o.Content.ToString() == "P")
       this.UpdatePopupTarget((UIElement) this.profileButton);
     else if (o.Content.ToString() == "S")
       this.UpdatePopupTarget((UIElement) this.searchButton);
     else if (o.Content.ToString() == "L")
       this.UpdatePopupTarget((UIElement) this.listsButton);
     else if (o.Content.ToString() == "T")
       this.UpdatePopupTarget((UIElement) this.trendsButton);
     else if (o.Content.ToString() == "A")
       this.UpdatePopupTarget((UIElement) this.addcolumnButton);
     SettingsData.Instance.SelectedColumn = (UIElement) null;
       }));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.SelectTweetText, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o => RTBExtensions.SelectText(this.NewTweetEdit, o.Content.ToString())));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.SavedSearchesUpdated, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o => this.Dispatcher.BeginInvoke((Action) (() =>
       {
     foreach (Control item_0 in Enumerable.ToArray<Control>(Enumerable.Cast<Control>((IEnumerable) this.SearchMenu.Items)))
     {
       if (item_0 != this.newSearchMenuItem)
     this.SearchMenu.Items.Remove((object) item_0);
     }
     this.SearchMenu.Items.Add((object) new Separator());
     foreach (TwitterSavedSearch item_1 in (Collection<TwitterSavedSearch>) App.AppState.Accounts[this.viewModel.TwitterAccountID].SavedSearches)
     {
       MenuItem local_2 = new MenuItem();
       local_2.Header = (object) item_1.Name;
       local_2.SetBinding(MenuItem.CommandProperty, (BindingBase) new Binding("SavedSearchCommand")
       {
     Mode = BindingMode.OneTime
       });
       local_2.CommandParameter = (object) item_1.Id;
       this.SearchMenu.Items.Add((object) local_2);
     }
       }), DispatcherPriority.Background, new object[0])));
       Messenger.Default.Register<GenericMessage<object>>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.ColumnsToShow, this.viewModel.TwitterAccountID), (Action<GenericMessage<object>>) (o =>
       {
     this.GenerateGridView((int) o.Content);
     this.TweetColumns.RaiseEvent(new RoutedEventArgs(FrameworkElement.LoadedEvent, (object) this.TweetColumns));
       }));
       Messenger.Default.Register<KeyboardShortcutMessage>((object) this, (object) CommonCommands.MultiAccountifyToken((Enum) ViewModelMessages.KeyboardShortcut, this.viewModel.TwitterAccountID), new Action<KeyboardShortcutMessage>(this.KeyboardShortcut));
 }
示例#29
0
        private static MenuItem CreateMenuItem(string name, string automationId, RoutedCommand command)
        { 
            MenuItem menuItem = new MenuItem();
            menuItem.Header = SR.Get(name);
            menuItem.Command = command;
            AutomationProperties.SetAutomationId(menuItem, automationId); 

            Binding binding = new Binding(); 
            binding.Path = new PropertyPath(ContextMenu.PlacementTargetProperty); 
            binding.Mode = BindingMode.OneWay;
            binding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(ContextMenu), 1); 
            menuItem.SetBinding(MenuItem.CommandTargetProperty, binding);

            return menuItem;
        }