예제 #1
0
        private void CustomDataGridLoaded(object sender, RoutedEventArgs e)
        {
            var panel = Helper.GetVisualChild <CustomDataGridRowsPresenter>(this);

            if (panel != null)
            {
                panel.InvalidateArrange();
            }
            var extendedDataGrid = this as ExtendedDataGrid;

            if (extendedDataGrid != null && extendedDataGrid.FrozenRowCount != 0)
            {
                PropertyMetadata stye      = DefaultStyleKeyProperty.GetMetadata(typeof(CustomDataGrid));
                Type             ownerType = typeof(CustomDataGrid);
                if (((Type)(stye.DefaultValue)).Name == "DataGrid")
                {
                    DefaultStyleKeyProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(ownerType));
                }

                stye = ItemsPanelProperty.GetMetadata(ownerType);

                if (((FrameworkTemplate)(stye.DefaultValue)).VisualTree.Type != typeof(CustomDataGridRowsPresenter))
                {
                    ItemsPanelProperty.OverrideMetadata(ownerType,
                                                        new FrameworkPropertyMetadata(
                                                            new ItemsPanelTemplate(
                                                                new FrameworkElementFactory(
                                                                    typeof(CustomDataGridRowsPresenter)))));
                }
            }
            if (panel != null)
            {
                panel.InvalidateArrange();
            }
        }
예제 #2
0
        static ApplicationBar()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(typeof(ApplicationBar)));

            var itemsPanelTemplate = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(ApplicationBarPanel)));

            itemsPanelTemplate.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(itemsPanelTemplate));

            IsTabStopProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(false));
            FocusableProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(false));
            FocusManager.IsFocusScopeProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(true));
            KeyboardNavigation.DirectionalNavigationProperty.OverrideMetadata(
                typeof(ApplicationBar), new FrameworkPropertyMetadata(KeyboardNavigationMode.Cycle));
            KeyboardNavigation.TabNavigationProperty.OverrideMetadata(
                typeof(ApplicationBar), new FrameworkPropertyMetadata(KeyboardNavigationMode.Cycle));
            KeyboardNavigation.ControlTabNavigationProperty.OverrideMetadata(
                typeof(ApplicationBar), new FrameworkPropertyMetadata(KeyboardNavigationMode.Once));

            HorizontalAlignmentProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(HorizontalAlignment.Stretch));
            VerticalAlignmentProperty.OverrideMetadata(typeof(ApplicationBar), new FrameworkPropertyMetadata(VerticalAlignment.Bottom));

            EventManager.RegisterClassHandler(typeof(ApplicationBar), Mouse.LostMouseCaptureEvent,
                                              new MouseEventHandler(OnLostMouseCapture));
            EventManager.RegisterClassHandler(typeof(ApplicationBar), Mouse.PreviewMouseUpOutsideCapturedElementEvent,
                                              new MouseButtonEventHandler(OnPreviewMouseButtonOutsideCapturedElement));
        }
예제 #3
0
        private static void InitPanel()
        {
            var itemsPanelTemplate = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(FlyoutPanel)));

            itemsPanelTemplate.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(AutoHideGroupControl), new FrameworkPropertyMetadata(itemsPanelTemplate));
        }
예제 #4
0
        static BottomScrolledItemsControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(BottomScrolledItemsControl), new FrameworkPropertyMetadata(typeof(BottomScrolledItemsControl)));
            ItemsPanelTemplate itemsPanel = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(VirtualizingStackPanel)));

            ItemsPanelProperty.OverrideMetadata(typeof(BottomScrolledItemsControl), new FrameworkPropertyMetadata(itemsPanel));
        }
예제 #5
0
 /// <summary>
 /// Initializes static members of the <see cref="TreeViewItem"/> class.
 /// </summary>
 static TreeViewItem()
 {
     SelectableMixin.Attach <TreeViewItem>(IsSelectedProperty);
     FocusableProperty.OverrideDefaultValue <TreeViewItem>(true);
     ItemsPanelProperty.OverrideDefaultValue <TreeViewItem>(DefaultPanel);
     RequestBringIntoViewEvent.AddClassHandler <TreeViewItem>(x => x.OnRequestBringIntoView);
 }
예제 #6
0
파일: TabStrip.cs 프로젝트: jlarbi/Avalonia
 /// <summary>
 /// Initializes static member(s) of the <see cref="TabStrip"/> class.
 /// </summary>
 static TabStrip()
 {
     MemberSelectorProperty.OverrideDefaultValue <TabStrip>(s_MemberSelector);
     SelectionModeProperty.OverrideDefaultValue <TabStrip>(SelectionMode.AlwaysSelected);
     FocusableProperty.OverrideDefaultValue(typeof(TabStrip), false);
     ItemsPanelProperty.OverrideDefaultValue <TabStrip>(DefaultPanel);
 }
예제 #7
0
        static InstrumentBase()
        {
            InitializeClassMetaData <InstrumentBase>();

            TemplateProperty.SetDefaultValue <InstrumentBase>(WPF.Resources.InstrumentTemplate);
            ItemsPanelProperty.SetDefaultValue <InstrumentBase>(WPF.Resources.WrapPanelItemsTemplate);
        }
예제 #8
0
 /// <summary>
 /// Initializes static members of the <see cref="TabControl"/> class.
 /// </summary>
 static TabControl()
 {
     SelectionModeProperty.OverrideDefaultValue <TabControl>(SelectionMode.AlwaysSelected);
     ItemsPanelProperty.OverrideDefaultValue <TabControl>(DefaultPanel);
     AffectsMeasure <TabControl>(TabStripPlacementProperty);
     SelectedIndexProperty.Changed.AddClassHandler <TabControl>((x, e) => x.UpdateSelectedContent(e));
 }
예제 #9
0
 /// <summary>
 /// Initializes static members of the <see cref="DropDown"/> class.
 /// </summary>
 static DropDown()
 {
     ItemsPanelProperty.OverrideDefaultValue <DropDown>(DefaultPanel);
     FocusableProperty.OverrideDefaultValue <DropDown>(true);
     SelectedItemProperty.Changed.AddClassHandler <DropDown>(x => x.SelectedItemChanged);
     KeyDownEvent.AddClassHandler <DropDown>(x => x.OnKeyDown, Interactivity.RoutingStrategies.Tunnel);
 }
예제 #10
0
 /// <summary>
 /// Initializes static members of the <see cref="ComboBox"/> class.
 /// </summary>
 static ComboBox()
 {
     ItemsPanelProperty.OverrideDefaultValue <ComboBox>(DefaultPanel);
     FocusableProperty.OverrideDefaultValue <ComboBox>(true);
     SelectedItemProperty.Changed.AddClassHandler <ComboBox>((x, e) => x.SelectedItemChanged(e));
     KeyDownEvent.AddClassHandler <ComboBox>((x, e) => x.OnKeyDown(e), Interactivity.RoutingStrategies.Tunnel);
 }
예제 #11
0
 /// <summary>
 /// Initializes static members of the <see cref="TreeViewItem"/> class.
 /// </summary>
 static TreeViewItem()
 {
     SelectableMixin.Attach <TreeViewItem>(IsSelectedProperty);
     FocusableProperty.OverrideDefaultValue <TreeViewItem>(true);
     ItemsPanelProperty.OverrideDefaultValue <TreeViewItem>(DefaultPanel);
     ParentProperty.Changed.AddClassHandler <TreeViewItem>((o, e) => o.OnParentChanged(e));
     RequestBringIntoViewEvent.AddClassHandler <TreeViewItem>((x, e) => x.OnRequestBringIntoView(e));
 }
예제 #12
0
        static ShellMenu()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ShellMenu),
                                                     new FrameworkPropertyMetadata(typeof(ShellMenu)));

            ItemsPanelProperty.OverrideMetadata(typeof(ShellMenu),
                                                new FrameworkPropertyMetadata(GetDefaultItemsPanelTemplate()));
        }
예제 #13
0
        static ListControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ListControl), new FrameworkPropertyMetadata(typeof(ListControl)));
            var template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(VirtualizingStackPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(ListControl), new FrameworkPropertyMetadata(template));
        }
예제 #14
0
        static UIEnumSwitch()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(UIEnumSwitch), new FrameworkPropertyMetadata(typeof(UIEnumSwitch)));
            ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(VirtualizingStackPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(UIEnumSwitch), new FrameworkPropertyMetadata(template));
        }
예제 #15
0
        static Pagination()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(Pagination), new FrameworkPropertyMetadata(typeof(Pagination)));
            ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(WrapPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(Pagination), new FrameworkPropertyMetadata(template));
        }
예제 #16
0
        static ActiveDisplayer()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ActiveDisplayer), new FrameworkPropertyMetadata(typeof(ActiveDisplayer)));
            ItemsPanelTemplate itemsPanelTemplate = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(VirtualizingStackPanel)));

            itemsPanelTemplate.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(ActiveDisplayer), new FrameworkPropertyMetadata(itemsPanelTemplate));
        }
예제 #17
0
 /// <summary>
 /// Initializes static members of the <see cref="ContextMenu"/> class.
 /// </summary>
 static ContextMenu()
 {
     ItemsPanelProperty.OverrideDefaultValue <ContextMenu>(DefaultPanel);
     PlacementModeProperty.OverrideDefaultValue <ContextMenu>(PlacementMode.Pointer);
     ContextMenuProperty.Changed.Subscribe(ContextMenuChanged);
     AutomationProperties.AccessibilityViewProperty.OverrideDefaultValue <ContextMenu>(AccessibilityView.Control);
     AutomationProperties.ControlTypeOverrideProperty.OverrideDefaultValue <ContextMenu>(AutomationControlType.Menu);
 }
        /// <summary>
        /// Property changed callback fro FrozenRowCount
        /// </summary>
        /// <param name="d"></param>
        /// <param name="e"></param>
        private static void OnFrozenRowCountPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var extendedDataGrid = d as ExtendedDataGrid;

            if (extendedDataGrid != null && extendedDataGrid.FrozenRowCount == 0)
            {
                return;
            }

            var panel = Helper.GetVisualChild <CustomDataGridRowsPresenter>(d as Visual);

            if (panel != null)
            {
                panel.InvalidateArrange();
            }
            else
            {
                PropertyMetadata style     = DefaultStyleKeyProperty.GetMetadata(typeof(CustomDg));
                Type             ownerType = typeof(CustomDg);
                if (((Type)(style.DefaultValue)).Name == "DataGrid")
                {
                    DefaultStyleKeyProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(ownerType));
                }

                style = ItemsPanelProperty.GetMetadata(ownerType);

                if (((FrameworkTemplate)(style.DefaultValue)).VisualTree.Type != typeof(CustomDataGridRowsPresenter))
                {
                    ItemsPanelProperty.OverrideMetadata(ownerType,
                                                        new FrameworkPropertyMetadata(
                                                            new ItemsPanelTemplate(
                                                                new FrameworkElementFactory(
                                                                    typeof(CustomDataGridRowsPresenter)))));
                }
                panel = Helper.GetVisualChild <CustomDataGridRowsPresenter>(d as Visual);
                if (panel != null)
                {
                    panel.InvalidateArrange();
                }
            }
            var dataGrid = d as DataGrid;

            if (dataGrid != null)
            {
                try
                {
                    dataGrid.UpdateLayout();
                }
                catch
                {
                }
            }

            if (panel != null)
            {
                panel.InvalidateArrange();
            }
        }
예제 #19
0
        static SpitButtonMenuItem()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(SpitButtonMenuItem), new FrameworkPropertyMetadata(typeof(SpitButtonMenuItem)));

            ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(StackPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(SpitButtonMenuItem), new FrameworkPropertyMetadata(template));
        }
예제 #20
0
        public ArrangeListBox() : base()
        {
            var itemspanel = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(ArrangePanel)));

            itemspanel.VisualTree.AddHandler(ArrangePanel.LoadedEvent, new RoutedEventHandler(ItemsPanel_Loaded));
            itemspanel.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(ArrangeListBox), new FrameworkPropertyMetadata(itemspanel));
            this.SelectionMode = SelectionMode.Single;
        }
        static TimelineItemsPresenter()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TimelineItemsPresenter), new FrameworkPropertyMetadata(typeof(TimelineItemsPresenter)));

            ItemsPanelTemplate defaultPanel = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(TimelineCompactPanel)));

            ItemsPanelProperty.OverrideMetadata(typeof(TimelineItemsPresenter), new FrameworkPropertyMetadata(defaultPanel));

            ItemContainerStyleSelectorProperty.AddOwner(typeof(TimelineItemsPresenter), new FrameworkPropertyMetadata(null, CoerceItemContainerStyleSelector));
        }
예제 #22
0
        static RibbonTabHeaderItemsControl()
        {
            Type ownerType = typeof(RibbonTabHeaderItemsControl);

            ItemsPanelProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(new ItemsPanelTemplate(new FrameworkElementFactory(typeof(RibbonTabHeadersPanel)))));
            DefaultStyleKeyProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(typeof(RibbonTabHeaderItemsControl)));
            FocusableProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(false));
            KeyboardNavigation.TabNavigationProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(KeyboardNavigationMode.Once));
            KeyboardNavigation.ControlTabNavigationProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(KeyboardNavigationMode.Once));
        }
예제 #23
0
 /// <summary>
 /// Initializes static members of the <see cref="MenuItem"/> class.
 /// </summary>
 static MenuItem()
 {
     SelectableMixin.Attach <MenuItem>(IsSelectedProperty);
     FocusableProperty.OverrideDefaultValue <MenuItem>(true);
     ItemsPanelProperty.OverrideDefaultValue <MenuItem>(DefaultPanel);
     ClickEvent.AddClassHandler <MenuItem>(x => x.OnClick);
     SubmenuOpenedEvent.AddClassHandler <MenuItem>(x => x.OnSubmenuOpened);
     IsSubMenuOpenProperty.Changed.AddClassHandler <MenuItem>(x => x.SubMenuOpenChanged);
     AccessKeyHandler.AccessKeyPressedEvent.AddClassHandler <MenuItem>(x => x.AccessKeyPressed);
 }
예제 #24
0
 /// <summary>
 /// Initializes static members of the <see cref="TabControl"/> class.
 /// </summary>
 static TabControl()
 {
     SelectionModeProperty.OverrideDefaultValue <TabControl>(SelectionMode.AlwaysSelected);
     ItemsPanelProperty.OverrideDefaultValue <TabControl>(DefaultPanel);
     AffectsMeasure <TabControl>(TabStripPlacementProperty);
     ContentControlMixin.Attach <TabControl>(
         SelectedContentProperty,
         x => x.LogicalChildren,
         "PART_SelectedContentHost");
 }
예제 #25
0
        static UISearchBox()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(UISearchBox), new FrameworkPropertyMetadata(typeof(UISearchBox)));
            SearchTextChangedEvent = EventManager.RegisterRoutedEvent("SearchTextChanged", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UISearchBox));
            PressedEvent           = EventManager.RegisterRoutedEvent("PressedClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UISearchBox));
            UnpressedEvent         = EventManager.RegisterRoutedEvent("UnpressedClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UISearchBox));
            ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(VirtualizingStackPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(UISearchBox), new FrameworkPropertyMetadata(template));
        }
예제 #26
0
        static KanbanBoard()
        {
            Type ownerType = typeof(KanbanBoard);

            // Enable Themes for this Control
            DefaultStyleKeyProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(typeof(KanbanBoard)));
            // Change ItemsPanel
            FrameworkElementFactory kanbanBoardPresenterFactory = new FrameworkElementFactory(typeof(KanbanBoardPresenter));

            kanbanBoardPresenterFactory.SetValue(NameProperty, ItemsPanelPartName);
            ItemsPanelProperty.OverrideMetadata(ownerType, new FrameworkPropertyMetadata(new ItemsPanelTemplate(kanbanBoardPresenterFactory)));
        }
예제 #27
0
 /// <summary>
 /// Initializes static members of the <see cref="MenuItem"/> class.
 /// </summary>
 static MenuItem()
 {
     SelectableMixin.Attach <MenuItem>(IsSelectedProperty);
     CommandProperty.Changed.Subscribe(CommandChanged);
     FocusableProperty.OverrideDefaultValue <MenuItem>(true);
     IconProperty.Changed.AddClassHandler <MenuItem>(x => x.IconChanged);
     IsSelectedProperty.Changed.AddClassHandler <MenuItem>(x => x.IsSelectedChanged);
     ItemsPanelProperty.OverrideDefaultValue <MenuItem>(DefaultPanel);
     ClickEvent.AddClassHandler <MenuItem>(x => x.OnClick);
     SubmenuOpenedEvent.AddClassHandler <MenuItem>(x => x.OnSubmenuOpened);
     IsSubMenuOpenProperty.Changed.AddClassHandler <MenuItem>(x => x.SubMenuOpenChanged);
 }
        //-------------------------------------------------------------------
        //
        //  Constructors
        //
        //-------------------------------------------------------------------

        #region Constructors

        static StatusBar()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(typeof(StatusBar)));
            _dType = DependencyObjectType.FromSystemTypeInternal(typeof(StatusBar));

            IsTabStopProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(BooleanBoxes.FalseBox));

            ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(DockPanel)));

            template.Seal();
            ItemsPanelProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(template));
        }
예제 #29
0
        /// <summary>
        ///     Instantiates global information.
        /// </summary>
        static DataGridRow()
        {
            VisibilityProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(null, OnCoerceVisibility));
            DefaultStyleKeyProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(typeof(DataGridRow)));
            ItemsPanelProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(new ItemsPanelTemplate(new FrameworkElementFactory(typeof(DataGridCellsPanel)))));
            FocusableProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(false));
            BackgroundProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(null, OnNotifyRowPropertyChanged, OnCoerceBackground));
            BindingGroupProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(OnNotifyRowPropertyChanged));

            // Set SnapsToDevicePixels to true so that this element can draw grid lines.  The metadata options are so that the property value doesn't inherit down the tree from here.
            SnapsToDevicePixelsProperty.OverrideMetadata(typeof(DataGridRow), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsArrange));
        }
예제 #30
0
        static Menu()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(Menu), new FrameworkPropertyMetadata(typeof(Menu)));
            _dType = DependencyObjectType.FromSystemTypeInternal(typeof(Menu));

            ItemsPanelProperty.OverrideMetadata(typeof(Menu), new FrameworkPropertyMetadata(GetDefaultPanel()));
            IsTabStopProperty.OverrideMetadata(typeof(Menu), new FrameworkPropertyMetadata(false));

            KeyboardNavigation.ControlTabNavigationProperty.OverrideMetadata(typeof(Menu), new FrameworkPropertyMetadata(KeyboardNavigationMode.Once));
            KeyboardNavigation.DirectionalNavigationProperty.OverrideMetadata(typeof(Menu), new FrameworkPropertyMetadata(KeyboardNavigationMode.Cycle));

            EventManager.RegisterClassHandler(typeof(Menu), AccessKeyManager.AccessKeyPressedEvent, new AccessKeyPressedEventHandler(OnAccessKeyPressed));
        }