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) }; }); }
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); }
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; }
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; }
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); }
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); }
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; }
private void BindMenuText(MenuItem menuItem, DependencyProperty property) { var binding = new Binding { Source = this, Path = new PropertyPath(property) }; menuItem.SetBinding(HeaderedItemsControl.HeaderProperty, binding); }
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)}); } }; }
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); }
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; }
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; }
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; }
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); }
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; }
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)); }
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; }