public override void OnApplyTemplate() { base.OnApplyTemplate(); this.toggleButton = (base.Template.FindName("PART_DropDown", this) as ToggleButton); if (this.toggleButton != null) { ContextMenu contextMenu = new ContextMenu { PlacementTarget = this.toggleButton, Placement = PlacementMode.Bottom, Style = base.FindResource("DefaultContextMenuStyle") as Style }; Binding b = new Binding { Source = this.toggleButton, Mode = BindingMode.TwoWay, Path = new PropertyPath(ToggleButton.IsCheckedProperty) }; contextMenu.SetBinding(ContextMenu.IsOpenProperty, b); this.toggleButton.ContextMenu = contextMenu; this.toggleButton.Checked += new RoutedEventHandler(this.DropDownButton_Checked); } }
/* * Protected override methods * */ #region Overrides /// <summary> /// OnApplyTemplate override /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); // set up the event handler for the template parts _toggleButton = this.Template.FindName("PART_DropDown", this) as ToggleButton; if (_toggleButton != null) { // create a context menu for the togglebutton ContextMenu cm = new ContextMenu { PlacementTarget = _toggleButton, Placement = PlacementMode.Bottom }; // create a binding between the togglebutton's IsChecked Property // and the Context Menu's IsOpen Property Binding b = new Binding { Source = _toggleButton, Mode = BindingMode.TwoWay, Path = new PropertyPath(ToggleButton.IsCheckedProperty) }; cm.SetBinding(ContextMenu.IsOpenProperty, b); _toggleButton.ContextMenu = cm; _toggleButton.Checked += DropdownButton_Checked; } ScrollViewer scrollViewer = this.Template.FindName("PART_ScrollViewer", this) as ScrollViewer; // set up event handlers for the RepeatButtons Click event RepeatButton repeatLeft = this.Template.FindName("PART_RepeatLeft", this) as RepeatButton; if (repeatLeft != null) { repeatLeft.Click += delegate { if (scrollViewer != null) scrollViewer.LineLeft(); }; } RepeatButton repeatRight = this.Template.FindName("PART_RepeatRight", this) as RepeatButton; if (repeatRight != null) { repeatRight.Click += delegate { if (scrollViewer != null) scrollViewer.LineRight(); }; } // set up the event handler for the 'New Tab' Button Click event _addNewButton = this.Template.FindName("PART_NewTabButton", this) as ButtonBase; if (_addNewButton != null) _addNewButton.Click += ((sender, routedEventArgs) => AddTabItem()); }
/* * Protected override methods * */ /// <summary> /// OnApplyTemplate override /// </summary> public override void OnApplyTemplate() { try { base.OnApplyTemplate(); this.AllowDrop = true; _RowDefinition0 = this.Template.FindName("RowDefinition0", this) as RowDefinition; // set up the event handler for the template parts _toggleButton = this.Template.FindName("PART_DropDown", this) as ToggleButton; if (_toggleButton != null) { // create a context menu for the togglebutton ContextMenu cm = new ContextMenu(); cm.PlacementTarget = _toggleButton; cm.Placement = PlacementMode.Bottom; // create a binding between the togglebutton's IsChecked Property // and the Context Menu's IsOpen Property Binding b = new Binding(); b.Source = _toggleButton; b.Mode = BindingMode.TwoWay; b.Path = new PropertyPath(ToggleButton.IsCheckedProperty); cm.SetBinding(ContextMenu.IsOpenProperty, b); _toggleButton.ContextMenu = cm; _toggleButton.Checked += DropdownButton_Checked; } ScrollViewer scrollViewer = this.Template.FindName("PART_ScrollViewer", this) as ScrollViewer; // set up event handlers for the RepeatButtons Click event RepeatButton repeatLeft = this.Template.FindName("PART_RepeatLeft", this) as RepeatButton; if (repeatLeft != null) { repeatLeft.Click += delegate { if (scrollViewer != null) scrollViewer.LineLeft(); GC.Collect(); }; } RepeatButton repeatRight = this.Template.FindName("PART_RepeatRight", this) as RepeatButton; if (repeatRight != null) { repeatRight.Click += delegate { if (scrollViewer != null) scrollViewer.LineRight(); GC.Collect(); }; } // set up the event handler for the 'New Tab' Button Click event ButtonBase button = this.Template.FindName("PART_NewTabButton", this) as ButtonBase; if (button != null) { button.Click += delegate { VMukti.App.blnIsTwoPanel = false; TabItem item = new TabItem(); item.Width = 250; item.MinWidth = 250; item.MaxWidth = 250; item.OwnerID = VMuktiAPI.VMuktiInfo.CurrentPeer.ID; item.OwnerPageIndex = VMukti.App.pageCounter++; ctlPgTabHeader objPgTabHeader = new ctlPgTabHeader(); // objPgTabHeader.Title = "New Page - " + this.Items.Count.ToString(); //TextBlock txtBlock = new TextBlock(); //txtBlock.Text = "New Tab - " + this.Items.Count.ToString(); if (VMuktiAPI.VMuktiInfo.CurrentPeer.CurrentMachineIP == VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName || VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName == "") { objPgTabHeader.Title = "New Page"; } else { objPgTabHeader.Title = VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName; } Image imgIcon = new Image(); imgIcon.Source = new BitmapImage(new Uri(@"\Skins\Images\VMuktiIcon.ico", UriKind.RelativeOrAbsolute)); imgIcon.Height = 16; imgIcon.Width = 16; //item.Header = txtBlock; item.Header = objPgTabHeader; item.Icon = imgIcon; item.Content = NewTabControl(); if (VMuktiAPI.VMuktiInfo.CurrentPeer.ID > 0) { item.AddBuddy(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName); item.SetMaxCounter(0, VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName); } //if (i == -1 || i == this.Items.Count - 1 || AddNewTabToEnd) this.Items.Add(item); //else //this.Items.Insert(++i, item); if (SelectNewTabOnCreate) { SelectedItem = item; VirtualizingTabPanel itemsHost = Helper.FindVirtualizingTabPanel(this); if (itemsHost != null) itemsHost.MakeVisible(item, Rect.Empty); item.Focus(); } if (TabItemAdded != null) TabItemAdded(this, new TabItemEventArgs(item)); }; this.Drop += new DragEventHandler(TabControl_Drop); } LoadDefaultPage(); objSendPageInfo = new DelSendPageInfo(SendPageInfo); } catch (Exception ex) { VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "OnapplyTemplate()", "Controls\\VMuktiGrid\\Page\\TabControl.cs"); } }
/* * Protected override methods * */ /// <summary> /// OnApplyTemplate override /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); // set up the event handler for the template parts _toggleButton = this.Template.FindName("PART_DropDown", this) as ToggleButton; if (_toggleButton != null) { // create a context menu for the togglebutton System.Windows.Controls.ContextMenu cm = new ContextMenu(); cm.PlacementTarget = _toggleButton; cm.Placement = PlacementMode.Bottom; // create a binding between the togglebutton's IsChecked Property // and the Context Menu's IsOpen Property Binding b = new Binding(); b.Source = _toggleButton; b.Mode = BindingMode.TwoWay; b.Path = new PropertyPath(ToggleButton.IsCheckedProperty); cm.SetBinding(ContextMenu.IsOpenProperty, b); _toggleButton.ContextMenu = cm; _toggleButton.Checked += DropdownButton_Checked; } ScrollViewer scrollViewer = this.Template.FindName("PART_ScrollViewer", this) as ScrollViewer; // set up event handlers for the RepeatButtons Click event RepeatButton repeatLeft = this.Template.FindName("PART_RepeatLeft", this) as RepeatButton; if (repeatLeft != null) { repeatLeft.Click += delegate { if (scrollViewer != null) scrollViewer.LineLeft(); GC.Collect(); }; } RepeatButton repeatRight = this.Template.FindName("PART_RepeatRight", this) as RepeatButton; if (repeatRight != null) { repeatRight.Click += delegate { if (scrollViewer != null) scrollViewer.LineRight(); GC.Collect(); }; } // set up the event handler for the 'New Tab' Button Click event ButtonBase button = this.Template.FindName("PART_NewTabButton", this) as ButtonBase; if (button != null) { button.Click += delegate { int i = this.SelectedIndex; TabItem item = new TabItem(); item.Header = "New Tab"; if (i == -1 || i == this.Items.Count - 1 || AddNewTabToEnd) this.Items.Add(item); else this.Items.Insert(++i, item); if (SelectNewTabOnCreate) { SelectedItem = item; VirtualizingTabPanel itemsHost = Helper.FindVirtualizingTabPanel(this); if (itemsHost != null) itemsHost.MakeVisible(item, Rect.Empty); item.Focus(); if (TabItemSelected != null) TabItemSelected(this, new TabItemEventArgs(item)); } if (TabItemAdded != null) TabItemAdded(this, new TabItemEventArgs(item)); }; } }