private void UpdateOrientation() { if (this.Initializing || this.Items.Count <= 0) { return; } StackPanel stackPanel = VisualTreeHelper.GetParent((DependencyObject)this.Items[0]) as StackPanel; if (stackPanel != null && stackPanel.Orientation != this.Orientation) { stackPanel.Orientation = this.Orientation; ScrollViewer scrollHost = ItemsControlExtensions.GetScrollHost((ItemsControl)this); if (scrollHost != null) { scrollHost.HorizontalScrollBarVisibility = this.Orientation == Orientation.Vertical ? ScrollBarVisibility.Disabled : ScrollBarVisibility.Auto; scrollHost.VerticalScrollBarVisibility = this.Orientation == Orientation.Horizontal ? ScrollBarVisibility.Disabled : ScrollBarVisibility.Auto; } } foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null && legendItem.Title != null) { legendItem.Title.TextTrimming = this.Orientation == Orientation.Vertical ? TextTrimming.WordEllipsis : TextTrimming.None; } } }
public void ClearSelection() { this._currentSelectedItem = (LegendItem)null; foreach (LegendItem legendItem in (IEnumerable)this.Items) { legendItem.IsSelected = false; } }
public void FireItemClick(LegendItem item) { if (item != null && this.ItemClick != null && this.ItemClick.CanExecute((object)item)) { this.ItemClick.Execute((object)item); } this.FireSelectionChanged(item); }
protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e) { foreach (LegendItem legendItem in (IEnumerable)this.Items) { legendItem.Owner = this; } this._currentSelectedItem = (LegendItem)null; base.OnItemsChanged(e); this.UpdateContentVisibility(); this.UpdateOrientation(); this.UpdateColumnWidths(); this.UpdateItemMargins(); this.UpdateItemHeights(); }
private FrameworkElement[][] GetCells() { List <FrameworkElement[]> list = new List <FrameworkElement[]>(); foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { list.Add(legendItem.GetCells()); } } return(list.ToArray()); }
internal LegendItem GetNextItem(LegendItem currentItem, bool isForward) { int num = this.Items.IndexOf((object)currentItem); int index = !isForward ? num - 1 : num + 1; if (index < 0) { index = 0; } else if (index > this.Items.Count - 1) { index = this.Items.Count - 1; } return((LegendItem)this.Items[index]); }
internal bool SetFocusToItem(LegendItem item) { bool flag = false; if (item != null) { if (!item.IsInLegendVisibleArea(this)) { ScrollViewer scrollHost = ItemsControlExtensions.GetScrollHost((ItemsControl)this); if (scrollHost != null) { ScrollViewerExtensions.ScrollIntoView(scrollHost, (FrameworkElement)item, 0.0, 0.0, (Duration)TimeSpan.Zero.Duration()); } } flag = item.Focus(); } return(flag); }
private bool ProcessKeysUp(Key key) { bool flag = false; Legend legend = this.Owner; if (legend == null) { return(flag); } switch (key) { case Key.Return: case Key.Space: legend.FireItemClick(this); break; case Key.Prior: LegendItem legendItem1 = Enumerable.FirstOrDefault <LegendItem>(Enumerable.OfType <LegendItem>((IEnumerable)legend.Items), (Func <LegendItem, bool>)(item => item.IsInLegendVisibleArea(legend))); flag = legend.SetFocusToItem(legendItem1); break; case Key.Next: if (!this.IsInLegendVisibleArea(legend)) { LegendItem legendItem2 = Enumerable.FirstOrDefault <LegendItem>(Enumerable.OfType <LegendItem>((IEnumerable)legend.Items), (Func <LegendItem, bool>)(item => item.IsInLegendVisibleArea(legend))); flag = legend.SetFocusToItem(legendItem2); break; } LegendItem legendItem3 = (LegendItem)legend.Items[legend.Items.Count - 1]; legend.SetFocusToItem(legendItem3); break; case Key.End: LegendItem legendItem4 = (LegendItem)legend.Items[legend.Items.Count - 1]; flag = legend.SetFocusToItem(legendItem4); break; case Key.Home: LegendItem legendItem5 = (LegendItem)legend.Items[0]; flag = legend.SetFocusToItem(legendItem5); break; } return(flag); }
private void FireSelectionChanged(LegendItem selectedItem = null) { if (selectedItem == null) { selectedItem = this.SelectedItem; } if (selectedItem == this._currentSelectedItem) { return; } this.OnSelectionChanged(new SelectionChangedEventArgs((RoutedEvent)null, (IList) new object[1] { (object)this._currentSelectedItem }, (IList) new object[1] { (object)selectedItem })); this._currentSelectedItem = selectedItem; }
private void UpdateItemHeights() { if (this.Initializing) { return; } if (this.EqualItemHeight) { double val2 = 0.0; foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { val2 = Math.Max(legendItem.ActualHeight, val2); } } if (val2 <= 0.0) { return; } foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { legendItem.MinHeight = val2; } } } else { foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { legendItem.MinHeight = 0.0; } } } }
private void UpdateItemMargins() { if (this.Initializing) { return; } if (this.Orientation == Orientation.Horizontal) { foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { if (this.Items.IndexOf(obj) != this.Items.Count - 1) { legendItem.ExtendMargin(); } else { legendItem.RestoreOriginalMargin(); } } } } else { foreach (object obj in (IEnumerable)this.Items) { LegendItem legendItem = obj as LegendItem; if (legendItem != null) { legendItem.RestoreOriginalMargin(); } } } }
private void FireSelectionChanged(LegendItem selectedItem = null) { if (selectedItem == null) selectedItem = this.SelectedItem; if (selectedItem == this._currentSelectedItem) return; this.OnSelectionChanged(new SelectionChangedEventArgs((RoutedEvent)null, (IList)new object[1] { (object) this._currentSelectedItem }, (IList)new object[1] { (object) selectedItem })); this._currentSelectedItem = selectedItem; }
public LegendItemAutomationPeer(LegendItem owner) : base((FrameworkElement)owner) { }
internal bool SetFocusToItem(LegendItem item) { bool flag = false; if (item != null) { if (!item.IsInLegendVisibleArea(this)) { ScrollViewer scrollHost = ItemsControlExtensions.GetScrollHost((ItemsControl)this); if (scrollHost != null) ScrollViewerExtensions.ScrollIntoView(scrollHost, (FrameworkElement)item, 0.0, 0.0, (Duration)TimeSpan.Zero.Duration()); } flag = item.Focus(); } return flag; }
protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e) { foreach (LegendItem legendItem in (IEnumerable)this.Items) legendItem.Owner = this; this._currentSelectedItem = (LegendItem)null; base.OnItemsChanged(e); this.UpdateContentVisibility(); this.UpdateOrientation(); this.UpdateColumnWidths(); this.UpdateItemMargins(); this.UpdateItemHeights(); }
internal LegendItem GetNextItem(LegendItem currentItem, bool isForward) { int num = this.Items.IndexOf((object)currentItem); int index = !isForward ? num - 1 : num + 1; if (index < 0) index = 0; else if (index > this.Items.Count - 1) index = this.Items.Count - 1; return (LegendItem)this.Items[index]; }
public void FireItemClick(LegendItem item) { if (item != null && this.ItemClick != null && this.ItemClick.CanExecute((object)item)) this.ItemClick.Execute((object)item); this.FireSelectionChanged(item); }
public void ClearSelection() { this._currentSelectedItem = (LegendItem)null; foreach (LegendItem legendItem in (IEnumerable)this.Items) legendItem.IsSelected = false; }
public LegendItemAutomationPeer(LegendItem owner) : base((FrameworkElement)owner) { }
private bool TrySetFocusOnNextItem(Legend legend, bool isForward) { LegendItem nextItem = legend.GetNextItem(this, isForward); return(legend.SetFocusToItem(nextItem)); }