private void OpenLeftPaneButtonClick(object sender, RoutedEventArgs e) { Storyboard showPanelAnimation = this.LeftPane.Resources["showLeftPanel"] as Storyboard; showPanelAnimation.Begin(this.LeftPane); var adornerLayer = AdornerLayer.GetAdornerLayer(this.MainScreen); if (adornerLayer == null) return; if (this.adornerContainer == null) { border = new Border { Background = new SolidColorBrush(Colors.Black), Opacity = 0.0 }; this.adornerContainer = new AdornerContainer(this.MainScreen) { Child = border }; } adornerLayer.Add(this.adornerContainer); var animation = new DoubleAnimation { To = 0.5, Duration = TimeSpan.FromSeconds(0.3) }; this.border.BeginAnimation(OpacityProperty, animation); this.isLeftPanelOpen = true; }
private static void HighlightUI(UIElement ui, string name) { if (string.IsNullOrWhiteSpace(name)) { RemoveHighlightUi(ui); return; } var binding = BindingOperations.GetBinding(ui, BindingProperty(ui)); if (binding == null) { return; } var bName = binding.Path.Path.Split('.').Last(); if (bName != name) { return; } var al = AdornerLayer.GetAdornerLayer(ui); var c = new AdornerContainer(ui) { IsHitTestVisible = false, Child = new MandatoryAdorner() }; al?.Add(c); }
public static Dialog Show(object content) { var dialog = new Dialog { Content = content }; var window = VisualHelper.GetActiveWindow(); if (window != null) { var decorator = VisualHelper.GetChild <AdornerDecorator>(window); if (decorator != null) { if (decorator.Child != null) { decorator.Child.IsEnabled = false; } var layer = decorator.AdornerLayer; if (layer != null) { var container = new AdornerContainer(layer) { Child = dialog }; dialog._container = container; layer.Add(container); } } } return(dialog); }
private static FloatingBlock CreateBlock(Visual element, AdornerContainer adorner) { Point position = Mouse.GetPosition(adorner.AdornedElement); TranslateTransform translateTransform = new TranslateTransform() { X = position.X + FloatingBlock.GetHorizontalOffset(element), Y = position.Y + FloatingBlock.GetVerticalOffset(element) }; FloatingBlock floatingBlock = new FloatingBlock() { Content = FloatingBlock.GetContent(element), ContentTemplate = FloatingBlock.GetContentTemplate(element) }; TransformGroup transformGroup = new TransformGroup(); transformGroup.Children.Add(translateTransform); floatingBlock.RenderTransform = transformGroup; FloatingBlock floatingBlock1 = floatingBlock; double totalMilliseconds = FloatingBlock.GetDuration(element).TimeSpan.TotalMilliseconds; DoubleAnimation doubleAnimation = AnimationHelper.CreateAnimation(FloatingBlock.GetToX(element) + translateTransform.X, totalMilliseconds); Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)", new object[0])); Storyboard.SetTarget(doubleAnimation, floatingBlock1); DoubleAnimation doubleAnimation1 = AnimationHelper.CreateAnimation(FloatingBlock.GetToY(element) + translateTransform.Y, totalMilliseconds); Storyboard.SetTargetProperty(doubleAnimation1, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)", new object[0])); Storyboard.SetTarget(doubleAnimation1, floatingBlock1); DoubleAnimation doubleAnimation2 = AnimationHelper.CreateAnimation(0, totalMilliseconds); Storyboard.SetTargetProperty(doubleAnimation2, new PropertyPath("Opacity", new object[0])); Storyboard.SetTarget(doubleAnimation2, floatingBlock1); Storyboard storyboard = new Storyboard(); storyboard.Completed += new EventHandler((object s, EventArgs e) => { AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(element); if (adornerLayer != null) { adorner.Child = null; adornerLayer.Remove(adorner); } }); storyboard.Children.Add(doubleAnimation); storyboard.Children.Add(doubleAnimation1); storyboard.Children.Add(doubleAnimation2); storyboard.Begin(); return(floatingBlock1); }
private void Drawer_Unloaded(object sender, RoutedEventArgs e) { Loaded -= Drawer_Loaded; if (_maskElement != null) { _maskElement.PreviewMouseLeftButtonDown -= MaskElement_PreviewMouseLeftButtonDown; } if (_storyboard != null) { _storyboard.Completed -= Storyboard_Completed; } _container = null; }
private static void Target_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { UIElement uIElement = sender as UIElement; if ((uIElement == null ? false : FloatingBlock.GetReadyToFloat(uIElement))) { AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(uIElement); if (adornerLayer != null) { AdornerContainer adornerContainer = new AdornerContainer(adornerLayer) { IsHitTestVisible = false, }; adornerContainer.Child = FloatingBlock.CreateBlock(uIElement, adornerContainer); adornerLayer.Add(adornerContainer); } FloatingBlock.SetReadyToFloat(uIElement, false); } }
protected override void OnIsSelectedChanged() { if (this.Visual is null) { return; } // Add adorners for the visual this is representing. var adornerLayer = AdornerLayer.GetAdornerLayer(this.Visual); if (adornerLayer != null && this.Visual is UIElement visualElement) { if (this.IsSelected && this.adornerContainer == null) { var border = new Border { BorderThickness = new Thickness(4), IsHitTestVisible = false }; var borderColor = new Color { ScA = .3f, ScR = 1 }; border.BorderBrush = new SolidColorBrush(borderColor); this.adornerContainer = new AdornerContainer(visualElement) { Child = border }; adornerLayer.Add(this.adornerContainer); } else if (this.adornerContainer != null) { adornerLayer.Remove(this.adornerContainer); this.adornerContainer.Child = null; this.adornerContainer = null; } } }
protected override void OnSelectionChanged() { // Add adorners for the visual this is representing. var adorners = AdornerLayer.GetAdornerLayer(Visual); var visualElement = Visual as UIElement; Visual root = null; if (visualElement != null) { root = FindRoot(Visual); ((UIElement)root).RemoveHandler(UIElement.KeyUpEvent, new KeyEventHandler(OnKeyUp)); } if (adorners != null && visualElement != null) { if (IsSelected && _adorner == null) { ((UIElement)root).AddHandler(UIElement.KeyUpEvent, new KeyEventHandler(OnKeyUp), true); _adorner = new AdornerContainer(visualElement) { Child = new Border { BorderThickness = new Thickness(4), BorderBrush = new SolidColorBrush(new Color { ScA = .3f, ScR = 1 }), IsHitTestVisible = false } }; adorners.Add(_adorner); } else if (_adorner != null) { adorners.Remove(_adorner); _adorner.Child = null; _adorner = null; } } }
private void HideLeftPanel() { Storyboard hidePanelAnimation = this.LeftPane.Resources["hideLeftPanel"] as Storyboard; hidePanelAnimation.Begin(this.LeftPane); this.OpenLeftPaneButton.IsChecked = false; var animation = new DoubleAnimation { To = 0.0, Duration = TimeSpan.FromSeconds(0.3) }; this.border.BeginAnimation(OpacityProperty, animation); var adornerLayer = AdornerLayer.GetAdornerLayer(this.MainScreen); if (this.adornerContainer != null) { adornerLayer.Remove(this.adornerContainer); this.adornerContainer = null; this.border = null; } this.isLeftPanelOpen = false; }
public override void OnApplyTemplate() { base.OnApplyTemplate(); scrollViewer = (TreeListScrollViewer)GetTemplateChild("PART_ScrollViewer"); var aContainer = new AdornerContainer(this); aContainer.Child = indicator = new Border { Width = 16, Height = 4, Background = Brushes.DodgerBlue, HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Top, ToolTip = "Current selection" }; indicator.MouseLeftButtonDown += (o, e) => { (MyItemsHost as VirtualizingStackPanel).BringIndexIntoViewPublic(SelectedIndex); }; ToolTipService.SetInitialShowDelay(indicator, 0); indicator.Cursor = Cursors.Hand; AdornerLayer.GetAdornerLayer(this).Add(aContainer); UpdateIndicator(); }