static private Bind ( object source, |
||
source | object | |
target | ||
path | string | |
property | ||
mode | BindingMode | |
Результат | void |
public static FrameworkElement GetQuickAccessItem(UIElement element) { FrameworkElement result = null; // If control supports the interface just return what it provides var provider = element as IQuickAccessItemProvider; if (provider != null && provider.CanAddToQuickAccessToolBar) { result = ((IQuickAccessItemProvider)element).CreateQuickAccessItem(); } // The control isn't supported if (result == null) { throw new ArgumentException("The contol " + element.GetType().Name + " is not able to provide a quick access toolbar item"); } if (BindingOperations.IsDataBound(result, UIElement.VisibilityProperty) == false) { RibbonControl.Bind(element, result, "Visibility", UIElement.VisibilityProperty, BindingMode.OneWay); } if (BindingOperations.IsDataBound(result, UIElement.IsEnabledProperty) == false) { RibbonControl.Bind(element, result, "IsEnabled", UIElement.IsEnabledProperty, BindingMode.OneWay); } return(result); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be syncronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public virtual FrameworkElement CreateQuickAccessItem() { ComboBox combo = new ComboBox(); RibbonControl.BindQuickAccessItem(this, combo); RibbonControl.Bind(this, combo, "GroupBy", ComboBox.GroupByProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ActualWidth", ComboBox.WidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "InputWidth", ComboBox.InputWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ItemHeight", ComboBox.ItemHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "IsEditable", ComboBox.IsEditableProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "IsReadOnly", ComboBox.IsReadOnlyProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ResizeMode", ComboBox.ResizeModeProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "Text", ComboBox.TextProperty, BindingMode.TwoWay); RibbonControl.Bind(this, combo, "DisplayMemberPath", DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "GroupStyleSelector", GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ItemContainerStyle", ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ItemsPanel", ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ItemStringFormat", ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "SelectedValuePath", SelectedValuePathProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.OneWay); combo.DropDownOpened += OnQuickAccessOpened; if (IsEditable) { combo.GotFocus += OnQuickAccessTextBoxGetFocus; } quickAccessCombo = combo; UpdateQuickAccessCombo(); return(combo); }
/// <summary> /// This method must be overridden to bind properties to use in quick access creating /// </summary> /// <param name="element">Toolbar item</param> protected virtual void BindQuickAccessItem(FrameworkElement element) { RibbonControl.BindQuickAccessItem(this, element); RibbonControl.Bind(this, element, "ResizeMode", ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, element, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, element, "HasTriangle", HasTriangleProperty, BindingMode.Default); }
// Creates menu private void RecreateMenu() { this.contextMenu.Items.Clear(); // Adding header separator this.contextMenu.Items.Add(new GroupSeparatorMenuItem()); RibbonControl.Bind(RibbonLocalization.Current.Localization, this.contextMenu.Items[0] as FrameworkElement, "CustomizeStatusBar", HeaderedItemsControl.HeaderProperty, BindingMode.OneWay); for (var i = 0; i < this.Items.Count; i++) { var item = this.ItemContainerGenerator.ContainerFromItem(this.Items[i]) as StatusBarItem; if (item != null) { item.Checked += this.OnItemChecked; item.Unchecked += this.OnItemUnchecked; this.contextMenu.Items.Add(new StatusBarMenuItem(item)); } else { this.contextMenu.Items.Add(new Separator()); } } this.UpdateSeparartorsVisibility(); this.waitingForItemContainerGenerator = false; }
private static void OnTargetChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var quickAccessMenuItem = (QuickAccessMenuItem)d; var ribbonControl = e.NewValue as IRibbonControl; if (quickAccessMenuItem.Header == null && ribbonControl != null) { // Set Default Text Value RibbonControl.Bind(ribbonControl, quickAccessMenuItem, "Header", HeaderProperty, BindingMode.OneWay); } if (ribbonControl != null) { var parent = LogicalTreeHelper.GetParent((DependencyObject)ribbonControl); if (parent == null) { quickAccessMenuItem.AddLogicalChild(ribbonControl); } } var oldRibbonControl = e.OldValue as IRibbonControl; if (oldRibbonControl != null) { var parent = LogicalTreeHelper.GetParent((DependencyObject)oldRibbonControl); if (parent == quickAccessMenuItem) { quickAccessMenuItem.RemoveLogicalChild(oldRibbonControl); } } }
/// <inheritdoc /> public virtual FrameworkElement CreateQuickAccessItem() { var combo = new ComboBox(); RibbonControl.BindQuickAccessItem(this, combo); RibbonControl.Bind(this, combo, nameof(this.ActualWidth), MaxWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.InputWidth), InputWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.IsEditable), IsEditableProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.IsReadOnly), IsReadOnlyProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.ResizeMode), ResizeModeProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.Text), TextProperty, BindingMode.TwoWay); RibbonControl.Bind(this, combo, nameof(this.DisplayMemberPath), DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.GroupStyleSelector), GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.ItemContainerStyle), ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.ItemsPanel), ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.ItemStringFormat), ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.SelectedValuePath), SelectedValuePathProperty, BindingMode.OneWay); RibbonControl.Bind(this, combo, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.OneWay); combo.DropDownOpened += this.OnQuickAccessOpened; if (this.IsEditable) { combo.GotFocus += this.OnQuickAccessTextBoxGetFocus; } this.quickAccessCombo = combo; this.UpdateQuickAccessCombo(); return(combo); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be syncronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public FrameworkElement CreateQuickAccessItem() { var groupBox = new RibbonGroupBox(); RibbonControl.BindQuickAccessItem(this, groupBox); groupBox.DropDownOpened += this.OnQuickAccessOpened; groupBox.DropDownClosed += this.OnQuickAccessClosed; groupBox.State = RibbonGroupBoxState.QuickAccess; RibbonControl.Bind(this, groupBox, "ItemTemplateSelector", ItemTemplateSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "ItemsSource", ItemsSourceProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherCommandParameter", LauncherCommandParameterProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherCommand", LauncherCommandProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherCommandTarget", LauncherCommandTargetProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherIcon", LauncherIconProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherText", LauncherTextProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "LauncherToolTip", LauncherToolTipProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "IsLauncherEnabled", IsLauncherEnabledProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "IsLauncherVisible", IsLauncherVisibleProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, "DialogLauncherButtonKeyTipKeys", DialogLauncherButtonKeyTipKeysProperty, BindingMode.OneWay); groupBox.LauncherClick += this.LauncherClick; var toolTip = this.ToolTip as ToolTip; if ((toolTip == null || toolTip.ToolTip == null) && this.Header != null) { RibbonControl.Bind(this, groupBox, "Header", ToolTipProperty, BindingMode.OneWay); } if (this.Icon != null) { var iconVisual = this.Icon as Visual; if (iconVisual != null) { var rect = new Rectangle { Width = 16, Height = 16, Fill = new VisualBrush(iconVisual) }; groupBox.Icon = rect; } else { RibbonControl.Bind(this, groupBox, "Icon", RibbonControl.IconProperty, BindingMode.OneWay); } } if (this.Header != null) { RibbonControl.Bind(this, groupBox, "Header", RibbonControl.HeaderProperty, BindingMode.OneWay); } return(groupBox); }
/// <inheritdoc /> public virtual FrameworkElement CreateQuickAccessItem() { var button = new ToggleButton(); RibbonControl.Bind(this, button, nameof(this.IsChecked), IsCheckedProperty, BindingMode.TwoWay); button.Click += (sender, e) => this.RaiseEvent(e); RibbonControl.BindQuickAccessItem(this, button); return(button); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be syncronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public virtual FrameworkElement CreateQuickAccessItem() { CheckBox button = new CheckBox(); RibbonControl.Bind(this, button, "IsChecked", IsCheckedProperty, BindingMode.TwoWay); button.Click += ((sender, e) => RaiseEvent(e)); RibbonControl.BindQuickAccessItem(this, button); return(button); }
// ReSharper disable once SuggestBaseTypeForParameter private void ForwardBindingsForQAT(TextBox source, TextBox target) { RibbonControl.Bind(source, target, nameof(this.Text), TextProperty, BindingMode.TwoWay, UpdateSourceTrigger.PropertyChanged); RibbonControl.Bind(source, target, nameof(this.IsReadOnly), IsReadOnlyProperty, BindingMode.OneWay); RibbonControl.Bind(source, target, nameof(this.CharacterCasing), CharacterCasingProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.MaxLength), MaxLengthProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.TextAlignment), TextAlignmentProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.TextDecorations), TextDecorationsProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.IsUndoEnabled), IsUndoEnabledProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.UndoLimit), UndoLimitProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.AutoWordSelection), AutoWordSelectionProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.SelectionBrush), SelectionBrushProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.SelectionOpacity), SelectionOpacityProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.CaretBrush), CaretBrushProperty, BindingMode.TwoWay); RibbonControl.Bind(source, target, nameof(this.InputWidth), InputWidthProperty, BindingMode.TwoWay); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be syncronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public FrameworkElement CreateQuickAccessItem() { var groupBox = new RibbonGroupBox(); RibbonControl.BindQuickAccessItem(this, groupBox); groupBox.DropDownOpened += this.OnQuickAccessOpened; groupBox.DropDownClosed += this.OnQuickAccessClosed; groupBox.State = RibbonGroupBoxState.QuickAccess; RibbonControl.Bind(this, groupBox, nameof(this.ItemTemplateSelector), ItemTemplateSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.ItemsSource), ItemsSourceProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherCommandParameter), LauncherCommandParameterProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherCommand), LauncherCommandProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherCommandTarget), LauncherCommandTargetProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherIcon), LauncherIconProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherText), LauncherTextProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherToolTip), LauncherToolTipProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.IsLauncherEnabled), IsLauncherEnabledProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.IsLauncherVisible), IsLauncherVisibleProperty, BindingMode.OneWay); RibbonControl.Bind(this, groupBox, nameof(this.LauncherKeys), DialogLauncherButtonKeyTipKeysProperty, BindingMode.OneWay); groupBox.LauncherClick += this.LauncherClick; if (this.Icon != null) { var iconVisual = this.Icon as Visual; if (iconVisual != null) { var rect = new Rectangle { Width = 16, Height = 16, Fill = new VisualBrush(iconVisual) }; groupBox.Icon = rect; } else { RibbonControl.Bind(this, groupBox, nameof(this.Icon), RibbonControl.IconProperty, BindingMode.OneWay); } } return(groupBox); }
/// <inheritdoc /> public virtual FrameworkElement CreateQuickAccessItem() { if (this.HasItems) { if (this.IsSplited) { var button = new SplitButton { CanAddButtonToQuickAccessToolBar = false }; RibbonControl.BindQuickAccessItem(this, button); RibbonControl.Bind(this, button, nameof(this.ResizeMode), ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, button, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, button, nameof(this.DisplayMemberPath), DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.GroupStyleSelector), GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemContainerStyle), ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemsPanel), ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemStringFormat), ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); button.DropDownOpened += this.OnQuickAccessOpened; return(button); } else { var button = new DropDownButton(); RibbonControl.BindQuickAccessItem(this, button); RibbonControl.Bind(this, button, nameof(this.ResizeMode), ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, button, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, button, nameof(this.DisplayMemberPath), DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.GroupStyleSelector), GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemContainerStyle), ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemsPanel), ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemStringFormat), ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); button.DropDownOpened += this.OnQuickAccessOpened; return(button); } } else { var button = new Button(); RibbonControl.BindQuickAccessItem(this, button); return(button); } }
/// <summary> /// This method must be overridden to bind properties to use in quick access creating /// </summary> /// <param name="element">Toolbar item</param> protected override void BindQuickAccessItem(FrameworkElement element) { RibbonControl.Bind(this, element, "DisplayMemberPath", DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "GroupStyleSelector", GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "ItemContainerStyle", ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "ItemsPanel", ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "ItemStringFormat", ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, "IsChecked", IsCheckedProperty, BindingMode.TwoWay); RibbonControl.Bind(this, element, "DropDownToolTip", DropDownToolTipProperty, BindingMode.TwoWay); RibbonControl.Bind(this, element, "IsCheckable", IsCheckableProperty, BindingMode.Default); RibbonControl.Bind(this, element, "IsButtonEnabled", IsButtonEnabledProperty, BindingMode.Default); RibbonControl.Bind(this, element, "ContextMenu", ContextMenuProperty, BindingMode.Default); RibbonControl.BindQuickAccessItem(this, element); RibbonControl.Bind(this, element, "ResizeMode", ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, element, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, element, "HasTriangle", HasTriangleProperty, BindingMode.Default); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be synchronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public FrameworkElement CreateQuickAccessItem() { if (this.HasItems) { if (this.IsSplited) { SplitButton button = new SplitButton(); RibbonControl.BindQuickAccessItem(this, button); RibbonControl.Bind(this, button, "ResizeMode", ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, button, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, button, "DisplayMemberPath", DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "GroupStyleSelector", GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemContainerStyle", ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemsPanel", ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemStringFormat", ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); button.DropDownOpened += this.OnQuickAccessOpened; return(button); } else { DropDownButton button = new DropDownButton(); RibbonControl.BindQuickAccessItem(this, button); RibbonControl.Bind(this, button, "ResizeMode", ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, button, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, button, "DisplayMemberPath", DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "GroupStyleSelector", GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemContainerStyle", ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemsPanel", ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemStringFormat", ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); button.DropDownOpened += this.OnQuickAccessOpened; return(button); } } else { Button button = new Button(); RibbonControl.BindQuickAccessItem(this, button); return(button); } }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be synchronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public virtual FrameworkElement CreateQuickAccessItem() { DropDownButton button = new DropDownButton(); button.Size = RibbonControlSize.Small; BindQuickAccessItem(button); RibbonControl.Bind(this, button, "DisplayMemberPath", DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "GroupStyleSelector", GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemContainerStyle", ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemsPanel", ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemStringFormat", ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "ItemTemplate", ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, "MaxDropDownHeight", MaxDropDownHeightProperty, BindingMode.OneWay); BindQuickAccessItemDropDownEvents(button); button.DropDownOpened += OnQuickAccessOpened; return(button); }
/// <inheritdoc /> protected override void BindQuickAccessItem(FrameworkElement element) { RibbonControl.Bind(this, element, nameof(this.DisplayMemberPath), DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.GroupStyleSelector), GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.ItemContainerStyle), ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.ItemsPanel), ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.ItemStringFormat), ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, element, nameof(this.IsChecked), IsCheckedProperty, BindingMode.TwoWay); RibbonControl.Bind(this, element, nameof(this.DropDownToolTip), DropDownToolTipProperty, BindingMode.TwoWay); RibbonControl.Bind(this, element, nameof(this.IsCheckable), IsCheckableProperty, BindingMode.Default); RibbonControl.Bind(this, element, nameof(this.IsButtonEnabled), IsButtonEnabledProperty, BindingMode.Default); RibbonControl.Bind(this, element, nameof(this.ContextMenu), ContextMenuProperty, BindingMode.Default); RibbonControl.Bind(this, element, nameof(this.ResizeMode), ResizeModeProperty, BindingMode.Default); RibbonControl.Bind(this, element, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.Default); RibbonControl.Bind(this, element, nameof(this.HasTriangle), HasTriangleProperty, BindingMode.Default); RibbonControl.BindQuickAccessItem(this, element); }
/// <inheritdoc /> public virtual FrameworkElement CreateQuickAccessItem() { var button = new DropDownButton { Size = RibbonControlSize.Small }; this.BindQuickAccessItem(button); RibbonControl.Bind(this, button, nameof(this.DisplayMemberPath), DisplayMemberPathProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.GroupStyleSelector), GroupStyleSelectorProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemContainerStyle), ItemContainerStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemsPanel), ItemsPanelProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemStringFormat), ItemStringFormatProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.ItemTemplate), ItemTemplateProperty, BindingMode.OneWay); RibbonControl.Bind(this, button, nameof(this.MaxDropDownHeight), MaxDropDownHeightProperty, BindingMode.OneWay); this.BindQuickAccessItemDropDownEvents(button); button.DropDownOpened += this.OnQuickAccessOpened; return(button); }
// Creates menu private void RecreateMenu() { contextMenu.Items.Clear(); // Adding header separator contextMenu.Items.Add(new GroupSeparatorMenuItem()); RibbonControl.Bind(Ribbon.Localization, contextMenu.Items[0] as FrameworkElement, "CustomizeStatusBar", MenuItem.HeaderProperty, BindingMode.OneWay); for (int i = 0; i < Items.Count; i++) { StatusBarItem item = Items[i] as StatusBarItem; if (item != null) { item.Checked += OnItemChecked; item.Unchecked += OnItemUnchecked; contextMenu.Items.Add(new StatusBarMenuItem(item)); } else { contextMenu.Items.Add(new Separator()); } } UpdateSeparartorsVisibility(); }
/// <summary> /// Gets control which represents shortcut item. /// This item MUST be syncronized with the original /// and send command to original one control. /// </summary> /// <returns>Control which represents shortcut item</returns> public FrameworkElement CreateQuickAccessItem() { RibbonGroupBox groupBox = new RibbonGroupBox(); groupBox.DropDownOpened += OnQuickAccessOpened; groupBox.DropDownClosed += OnQuickAccessClosed; groupBox.State = RibbonGroupBoxState.QuickAccess; //RibbonControl.BindQuickAccessItem(this, groupBox); //if (QuickAccessElementStyle != null) RibbonControl.Bind(this, groupBox, "QuickAccessElementStyle", StyleProperty, BindingMode.OneWay); //RibbonControl.Bind(this, groupBox, "Icon", RibbonControl.IconProperty, BindingMode.OneWay); if (Icon != null) { Visual iconVisual = Icon as Visual; if (iconVisual != null) { Rectangle rect = new Rectangle(); rect.Width = 16; rect.Height = 16; rect.Fill = new VisualBrush(iconVisual); groupBox.Icon = rect; } else { RibbonControl.Bind(this, groupBox, "Icon", RibbonControl.IconProperty, BindingMode.OneWay); } } if (Header != null) { RibbonControl.Bind(this, groupBox, "Header", RibbonControl.HeaderProperty, BindingMode.OneWay); } return(groupBox); }
private void Refresh() { // Clear currently used group containers // and supply with new generated ones foreach (var galleryGroupContainer in this.galleryGroupContainers) { BindingOperations.ClearAllBindings(galleryGroupContainer); this.visualCollection.Remove(galleryGroupContainer); } this.galleryGroupContainers.Clear(); // Gets filters var filter = this.Filter?.Split(','); var dictionary = new Dictionary <string, GalleryGroupContainer>(); foreach (UIElement item in this.InternalChildren) { if (item == null) { continue; } // Resolve group name string propertyValue = null; if (this.GroupByAdvanced != null) { propertyValue = this.ItemContainerGenerator == null ? this.GroupByAdvanced(item) : this.GroupByAdvanced(this.ItemContainerGenerator.ItemFromContainerOrContainerContent(item)); } else if (string.IsNullOrEmpty(this.GroupBy) == false) { propertyValue = this.ItemContainerGenerator == null ? this.GetPropertyValueAsString(item) : this.GetPropertyValueAsString(this.ItemContainerGenerator.ItemFromContainerOrContainerContent(item)); } if (propertyValue == null) { propertyValue = Undefined; } // Make invisible if it is not in filter (or is not grouped) if (this.IsGrouped == false || (filter != null && filter.Contains(propertyValue) == false)) { item.Measure(new Size(0, 0)); item.Arrange(new Rect(0, 0, 0, 0)); } // Skip if it is not in filter if (filter != null && filter.Contains(propertyValue) == false) { continue; } // To put all items in one group in case of IsGrouped = False if (this.IsGrouped == false) { propertyValue = Undefined; } if (dictionary.ContainsKey(propertyValue) == false) { var galleryGroupContainer = new GalleryGroupContainer { Header = propertyValue }; RibbonControl.Bind(this, galleryGroupContainer, nameof(this.Orientation), GalleryGroupContainer.OrientationProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, nameof(this.ItemWidth), GalleryGroupContainer.ItemWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, nameof(this.ItemHeight), GalleryGroupContainer.ItemHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, nameof(this.MaxItemsInRow), GalleryGroupContainer.MaxItemsInRowProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, nameof(this.MinItemsInRow), GalleryGroupContainer.MinItemsInRowProperty, BindingMode.OneWay); dictionary.Add(propertyValue, galleryGroupContainer); this.galleryGroupContainers.Add(galleryGroupContainer); this.visualCollection.Add(galleryGroupContainer); } dictionary[propertyValue].Items.Add(new GalleryItemPlaceholder(item)); } if ((this.IsGrouped == false || (this.GroupBy == null && this.GroupByAdvanced == null)) && this.galleryGroupContainers.Count != 0) { // Make it without headers if there is only one group or if we are not supposed to group this.galleryGroupContainers[0].IsHeadered = false; } this.UpdateMinAndMaxWidth(); this.InvalidateMeasure(); }
private void Refresh() { if (this.needsRefresh == false) { return; } this.needsRefresh = false; if (this.itemContainerGeneratorAction == null) { this.itemContainerGeneratorAction = new ItemContainerGeneratorAction((ItemContainerGenerator)this.ItemContainerGenerator, this.Refresh); } // Clear currently used group containers // and supply with new generated ones foreach (var galleryGroupContainer in this.galleryGroupContainers) { BindingOperations.ClearAllBindings(galleryGroupContainer); this.visualCollection.Remove(galleryGroupContainer); } this.galleryGroupContainers.Clear(); // Gets filters var filter = this.Filter?.Split(','); var dictionary = new Dictionary <string, GalleryGroupContainer>(); foreach (UIElement item in this.InternalChildren) { if (item == null) { continue; } // Resolve group name string propertyValue = null; if (this.GroupByAdvanced == null) { propertyValue = this.ItemContainerGenerator == null ? this.GetPropertyValueAsString(item) : this.GetPropertyValueAsString(this.ItemContainerGenerator.GetItemContainerGeneratorForPanel(this).ItemFromContainer(item)); } else { propertyValue = this.ItemContainerGenerator == null ? this.GroupByAdvanced(item) : this.GroupByAdvanced(this.ItemContainerGenerator.GetItemContainerGeneratorForPanel(this).ItemFromContainer(item)); } if (propertyValue == null) { propertyValue = "Undefined"; } // Make invisible if it is not in filter if (this.IsGrouped && filter != null && filter.Contains(propertyValue) == false) { item.Visibility = Visibility.Collapsed; continue; } // Make all not filtered items visible item.Visibility = Visibility.Visible; // To put all items in one group in case of IsGrouped = False if (this.IsGrouped == false) { propertyValue = "Undefined"; } if (dictionary.ContainsKey(propertyValue) == false) { var galleryGroupContainer = new GalleryGroupContainer { Header = propertyValue }; RibbonControl.Bind(this, galleryGroupContainer, "GroupStyle", GroupStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "Orientation", GalleryGroupContainer.OrientationProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "ItemWidth", GalleryGroupContainer.ItemWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "ItemHeight", GalleryGroupContainer.ItemHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "MaxItemsInRow", GalleryGroupContainer.MaxItemsInRowProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "MinItemsInRow", GalleryGroupContainer.MinItemsInRowProperty, BindingMode.OneWay); dictionary.Add(propertyValue, galleryGroupContainer); this.galleryGroupContainers.Add(galleryGroupContainer); this.visualCollection.Add(galleryGroupContainer); } dictionary[propertyValue].Items.Add(new GalleryItemPlaceholder(item)); } if ((this.IsGrouped == false || (this.GroupBy == null && this.GroupByAdvanced == null)) && this.galleryGroupContainers.Count != 0) { // Make it without headers this.galleryGroupContainers[0].IsHeadered = false; } this.InvalidateMeasure(); }
void Refresh() { // Clear currently used group containers // and supply with new generated ones foreach (GalleryGroupContainer galleryGroupContainer in galleryGroupContainers) { BindingOperations.ClearAllBindings(galleryGroupContainer); //RemoveVisualChild(galleryGroupContainer); visualCollection.Remove(galleryGroupContainer); } galleryGroupContainers.Clear(); // Gets filters string[] filter = Filter == null ? null : Filter.Split(','); Dictionary <string, GalleryGroupContainer> dictionary = new Dictionary <string, GalleryGroupContainer>(); foreach (UIElement item in InternalChildren) { if (item == null) { continue; } // Resolve group name string propertyValue; if (GroupByAdvanced == null) { propertyValue = (ItemContainerGenerator == null) ? GetPropertyValueAsString(item) : GetPropertyValueAsString(ItemContainerGenerator.ItemFromContainer(item)); } else { propertyValue = (ItemContainerGenerator == null) ? GroupByAdvanced(item) : GroupByAdvanced(ItemContainerGenerator.ItemFromContainer(item)); } if (propertyValue == null) { propertyValue = "Undefined"; } // Make invisible if it is not in filter (or is not grouped) if ((!IsGrouped) || (filter != null && !filter.Contains(propertyValue))) { item.Measure(new Size(0, 0)); item.Arrange(new Rect(0, 0, 0, 0)); } // Skip if it is not in filter if (filter != null && !filter.Contains(propertyValue)) { continue; } // To put all items in one group in case of IsGrouped = False if (!IsGrouped) { propertyValue = "Undefined"; } if (!dictionary.ContainsKey(propertyValue)) { GalleryGroupContainer galleryGroupContainer = new GalleryGroupContainer(); galleryGroupContainer.Header = propertyValue; RibbonControl.Bind(this, galleryGroupContainer, "GroupStyle", GroupStyleProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "Orientation", GalleryGroupContainer.OrientationProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "ItemWidth", GalleryGroupContainer.ItemWidthProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "ItemHeight", GalleryGroupContainer.ItemHeightProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "MaxItemsInRow", GalleryGroupContainer.MaxItemsInRowProperty, BindingMode.OneWay); RibbonControl.Bind(this, galleryGroupContainer, "MinItemsInRow", GalleryGroupContainer.MinItemsInRowProperty, BindingMode.OneWay); dictionary.Add(propertyValue, galleryGroupContainer); galleryGroupContainers.Add(galleryGroupContainer); visualCollection.Add(galleryGroupContainer); } dictionary[propertyValue].Items.Add(new GalleryItemPlaceholder(item)); } if (((!IsGrouped) || (GroupBy == null && GroupByAdvanced == null)) && galleryGroupContainers.Count != 0) { // Make it without headers galleryGroupContainers[0].IsHeadered = false; } InvalidateMeasure(); }