bool displayUnitSelector; // Indicates whether Grid UnitSeletor should be displayed. public GridRailAdorner(DesignItem gridItem, AdornerPanel adornerPanel, Orientation orientation) { Debug.Assert(gridItem != null); Debug.Assert(adornerPanel != null); this.gridItem = gridItem; this.grid = (Grid)gridItem.Component; this.adornerPanel = adornerPanel; this.orientation = orientation; this.displayUnitSelector=false; this.unitSelector = new GridUnitSelector(this); adornerPanel.Children.Add(unitSelector); if (orientation == Orientation.Horizontal) { this.Height = RailSize; previewAdorner = new GridColumnSplitterAdorner(this, gridItem, null, null); } else { // vertical this.Width = RailSize; previewAdorner = new GridRowSplitterAdorner(this, gridItem, null, null); } unitSelector.Orientation = orientation; previewAdorner.IsPreview = true; previewAdorner.IsHitTestVisible = false; unitSelector.Visibility = Visibility.Hidden; }
protected override void OnInitialized() { base.OnInitialized(); if (this.ExtendedItem.Parent != null) { if (this.ExtendedItem.Parent.ComponentType == typeof(Canvas)) { FrameworkElement extendedControl = (FrameworkElement)this.ExtendedItem.Component; AdornerPanel adornerPanel = new AdornerPanel(); // If the Element is rotated/skewed in the grid, then margin handles do not appear if (extendedControl.LayoutTransform.Value == Matrix.Identity && extendedControl.RenderTransform.Value == Matrix.Identity) { _canvas = this.ExtendedItem.Parent.View as Canvas; _handles = new[] { _leftHandle = new CanvasPositionHandle(ExtendedItem, adornerPanel, HandleOrientation.Left), _topHandle = new CanvasPositionHandle(ExtendedItem, adornerPanel, HandleOrientation.Top), _rightHandle = new CanvasPositionHandle(ExtendedItem, adornerPanel, HandleOrientation.Right), _bottomHandle = new CanvasPositionHandle(ExtendedItem, adornerPanel, HandleOrientation.Bottom), }; } if (adornerPanel != null) this.Adorners.Add(adornerPanel); } } }
protected override void OnInitialized() { base.OnInitialized(); if (this.ExtendedItem.Parent != null) { if (this.ExtendedItem.Parent.ComponentType == typeof(Grid)){ FrameworkElement extendedControl = (FrameworkElement)this.ExtendedItem.Component; AdornerPanel adornerPanel = new AdornerPanel(); // If the Element is rotated/skewed in the grid, then margin handles do not appear if (extendedControl.LayoutTransform.Value == Matrix.Identity && extendedControl.RenderTransform.Value == Matrix.Identity) { _grid = this.ExtendedItem.Parent.View as Grid; _handles = new[] { _leftHandle = new MarginHandle(ExtendedItem, adornerPanel, HandleOrientation.Left), _topHandle = new MarginHandle(ExtendedItem, adornerPanel, HandleOrientation.Top), _rightHandle = new MarginHandle(ExtendedItem, adornerPanel, HandleOrientation.Right), _bottomHandle = new MarginHandle(ExtendedItem, adornerPanel, HandleOrientation.Bottom), }; foreach(var handle in _handles) { handle.MouseLeftButtonDown += OnMouseDown; handle.Stub.PreviewMouseLeftButtonDown += OnMouseDown; } } if (adornerPanel != null) this.Adorners.Add(adornerPanel); } } }
/// <summary> /// Arranges the adorner element on the specified adorner panel. /// </summary> public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize) { Point p = new Point(0, 0); if (shape is Line) { var s = shape as Line; double x, y; if (alignment == PlacementAlignment.BottomRight) { x = s.X2; y = s.Y2; } else { x = s.X1; y = s.Y1; } p = new Point(x, y); } else if (shape is Polygon) { var pg = shape as Polygon; p = pg.Points[Index]; } else if (shape is Polyline) { var pg = shape as Polyline; p = pg.Points[Index]; } var transform = shape.RenderedGeometry.Transform; p = transform.Transform(p); adorner.Arrange(new Rect(p.X - 3.5, p.Y - 3.5, 7, 7)); }
public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize) { adorner.Arrange(new Rect(column.Offset - GridRailAdorner.SplitterWidth / 2, -(GridRailAdorner.RailSize + GridRailAdorner.RailDistance), GridRailAdorner.SplitterWidth, GridRailAdorner.RailSize + GridRailAdorner.RailDistance + adornedElementSize.Height)); }
int numClicks; // No of left-button clicks on the element. public InPlaceEditorExtension() { adornerPanel=new AdornerPanel(); isGettingDragged=false; isMouseDown=Mouse.LeftButton==MouseButtonState.Pressed ? true : false; numClicks=0; }
public CanvasPositionHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation) { Debug.Assert(adornedControlItem != null); this.adornedControlItem = adornedControlItem; this.adornerPanel = adornerPanel; this.orientation = orientation; Angle = (double) orientation; canvas = (Canvas) adornedControlItem.Parent.Component; adornedControl = (FrameworkElement) adornedControlItem.Component; Stub = new MarginStub(this); ShouldBeVisible = true; leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, adornedControlItem.Component.GetType()); leftDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); rightDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.RightProperty, adornedControlItem.Component.GetType()); rightDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, adornedControlItem.Component.GetType()); topDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); bottomDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.BottomProperty, adornedControlItem.Component.GetType()); bottomDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); widthDescriptor = DependencyPropertyDescriptor.FromProperty(Control.WidthProperty, adornedControlItem.Component.GetType()); widthDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); heightDescriptor = DependencyPropertyDescriptor.FromProperty(Control.WidthProperty, adornedControlItem.Component.GetType()); heightDescriptor.AddValueChanged(adornedControl, OnPropertyChanged); BindAndPlaceHandle(); }
protected override void Activate(ModelItem item) { // Create and add a new adorner panel wheelSegmentsPanel = new WheelSegmentAdornerPanel(item); Adorners.Add(wheelSegmentsPanel); base.Activate(item); }
/// <summary> /// on creation add adornerlayer /// </summary> public LineExtensionBase() { _surface = new Canvas(); adornerPanel = new AdornerPanel(){ MinWidth = 10, MinHeight = 10 }; adornerPanel.Order = AdornerOrder.Foreground; adornerPanel.Children.Add(_surface); Adorners.Add(adornerPanel); }
// IPlacementBehavior resizeBehavior; // PlacementOperation operation; // ChangeGroup changeGroup; public RenderTransformOriginExtension() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Foreground; this.Adorners.Add(adornerPanel); CreateRenderTransformOriginThumb(); }
private void RemoveAdorner() { if (adornerPanel != null) { Adorners.Remove(adornerPanel); adornerPanel = null; } }
public RotateThumbExtension() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Foreground; this.Adorners.Add(adornerPanel); thumb = CreateRotateThumb(); }
private void CreateAdornerPanel() { if (this.adornersPanel == null) { adornersPanel = new AdornerPanel(); adornersPanel.IsContentFocusable = true; adornersPanel.Children.Add(designerUI); Adorners.Add(adornersPanel); } }
protected override void OnInitialized() { base.OnInitialized(); var adornerPanel = new AdornerPanel(); var adorner = new PanelMoveAdorner(ExtendedItem); AdornerPanel.SetPlacement(adorner, AdornerPlacement.FillContent); adornerPanel.Children.Add(adorner); Adorners.Add(adornerPanel); }
void DeleteSurface() { rasterDrawn = false; if (surface != null) { ExtendedItem.Services.DesignPanel.Adorners.Remove(adornerPanel); adornerPanel = null; surface = null; } }
private void DrawVerticalRectangle(double offset) { _rectangle.Width = 2; _rectangle.Fill = Brushes.Black; var placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Stretch) { XOffset = offset }; AdornerPanel.SetPlacement(_rectangle, placement); }
protected override void Activate(ModelItem item) { EnsureAdornerPanelExists(); AdornerPanel.SetAdornerHorizontalAlignment(adornerView, AdornerHorizontalAlignment.Left); AdornerPanel.SetAdornerVerticalAlignment(adornerView, AdornerVerticalAlignment.OutsideTop); AdornerPanel.SetAdornerMargin(adornerView, new Thickness(0, 0, 0, 20)); adornerView.DataContext = new WizardAdornerViewModel(item); base.Activate(item); }
private void DrawHorizontalRectangle(double offset) { _rectangle.Height = 2; _rectangle.Fill = Brushes.Black; var placement = new RelativePlacement(HorizontalAlignment.Stretch, VerticalAlignment.Top) { YOffset = offset }; AdornerPanel.SetPlacement(_rectangle, placement); }
protected override void OnStopped() { if (adornerPanel != null) { designPanel.Adorners.Remove(adornerPanel); adornerPanel = null; } GrayOutDesignerExceptActiveArea.Stop(ref grayOut); selectionFrame = null; base.OnStopped(); }
void DeleteSurface() { if (surface != null) { ExtendedItem.Services.DesignPanel.Adorners.Remove(adornerPanel); adornerPanel = null; surface = null; horizontalMap = null; verticalMap = null; } }
/// <summary> /// on creation add adornerlayer /// </summary> public LineExtensionBase() { _surface = new Canvas(); adornerPanel = new AdornerPanel() { MinWidth = 10, MinHeight = 10 }; adornerPanel.Order = AdornerOrder.Foreground; adornerPanel.Children.Add(_surface); Adorners.Add(adornerPanel); }
void renderTransformOriginThumb_DragDelta(object sender, DragDeltaEventArgs e) { var p = AdornerPanel.GetPlacement(renderTransformOriginThumb) as RelativePlacement; var pointAbs = adornerPanel.RelativeToAbsolute(new Vector(p.XRelativeToContentWidth, p.YRelativeToContentHeight)); var pointAbsNew = pointAbs + new Vector(e.HorizontalChange, e.VerticalChange); var pRel = adornerPanel.AbsoluteToRelative(pointAbsNew); renderTransformOrigin = new Point(pRel.X, pRel.Y); this.ExtendedItem.View.SetValue(FrameworkElement.RenderTransformOriginProperty, renderTransformOrigin); //this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(Math.Round(pRel.X, 4), Math.Round(pRel.Y, 4))); }
protected override void OnDragStarted(MouseEventArgs e) { adornerPanel = new AdornerPanel(); adornerPanel.SetAdornedElement(container.View, container); selectionFrame = new SelectionFrame(); adornerPanel.Children.Add(selectionFrame); designPanel.Adorners.Add(adornerPanel); GrayOutDesignerExceptActiveArea.Start(ref grayOut, services, container.View); }
private void ScopeElement_KeyDownOrUp(object sender, KeyEventArgs args) { if (args.IsDown && !args.IsRepeat) { this.modifierKeyBehaviorManager.TrySwitchModifierKeyBehavior(args); } bool flag = false; if (this.view.Artboard.DesignerView.IsKeyboardFocusWithin) { foreach (UIElement uiElement in (IEnumerable <UIElement>) this.view.Artboard.DesignerView.Adorners) { AdornerPanel adornerPanel = uiElement as AdornerPanel; if (adornerPanel != null && adornerPanel.IsKeyboardFocusWithin && adornerPanel.IsContentFocusable) { flag = true; break; } } } if (this.ActiveBehavior != null && !flag && !this.view.Artboard.IsLiveControlLayerActive) { this.ActiveBehavior.HandleKey(args); if (args.Key == Key.System && (args.SystemKey == Key.LeftAlt || args.SystemKey == Key.RightAlt)) { if (args.IsRepeat) { args.Handled = true; } else if (args.IsDown) { this.consumeAltKey = false; } else if (this.consumeAltKey) { args.Handled = true; } } if (this.IsButtonDown) { args.Handled = true; } if (this.view.Artboard.DesignerView.IsMouseCaptureWithin) { args.Handled = true; } } if (!args.IsUp) { return; } this.modifierKeyBehaviorManager.TrySwitchModifierKeyBehavior(args); }
void CreateSurface(PlacementOperation operation) { if (ExtendedItem.Services.GetService<IDesignPanel>() != null) { surface = new Canvas(); adornerPanel = new AdornerPanel(); adornerPanel.SetAdornedElement(ExtendedItem.View, ExtendedItem); AdornerPanel.SetPlacement(surface, AdornerPlacement.FillContent); adornerPanel.Children.Add(surface); ExtendedItem.Services.DesignPanel.Adorners.Add(adornerPanel); } }
void CreateSurface(PlacementOperation operation) { if (ExtendedItem.Services.GetService <IDesignPanel>() != null) { surface = new Canvas(); adornerPanel = new AdornerPanel(); adornerPanel.SetAdornedElement(ExtendedItem.View, ExtendedItem); AdornerPanel.SetPlacement(surface, AdornerPlacement.FillContent); adornerPanel.Children.Add(surface); ExtendedItem.Services.DesignPanel.Adorners.Add(adornerPanel); } }
// The following method is called when the adorner is activated. // It creates the adorner control, sets up the adorner panel, // and attaches a ModelItem to the adorned control. protected override void Activate(ModelItem item) { // Save the ModelItem and hook into when it changes. // This enables updating the slider position when // a new Background value is set. adornedControlModel = item; adornedControlModel.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler( AdornedControlModel_PropertyChanged); // Setup the slider's min and max values. opacitySlider.Minimum = 0; opacitySlider.Maximum = 1; // Setup the adorner panel. // All adorners are placed in an AdornerPanel // for sizing and layout support. AdornerPanel myPanel = this.Panel; // The slider extends the full width of the control it adorns. AdornerPanel.SetAdornerHorizontalAlignment( opacitySlider, AdornerHorizontalAlignment.Stretch); // Position the adorner above the control it adorns. AdornerPanel.SetAdornerVerticalAlignment( opacitySlider, AdornerVerticalAlignment.OutsideTop); // Position the adorner 5 pixels above the control. AdornerPanel.SetAdornerMargin( opacitySlider, new Thickness(0, 0, 0, 5)); // Initialize the slider when it is loaded. opacitySlider.Loaded += new RoutedEventHandler(slider_Loaded); // Handle the value changes of the slider control. opacitySlider.ValueChanged += new RoutedPropertyChangedEventHandler <double>( slider_ValueChanged); opacitySlider.PreviewMouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler( slider_MouseLeftButtonUp); opacitySlider.PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler( slider_MouseLeftButtonDown); base.Activate(item); }
public BorderForMouseOver() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Background; this.Adorners.Add(adornerPanel); var border = new Border(); border.BorderThickness = new Thickness(1); border.BorderBrush = Brushes.DodgerBlue; border.Margin = new Thickness(-2); AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent); adornerPanel.Children.Add(border); }
private void PlaceAdornerPanel() { AdornerPanel.SetHorizontalStretch(designerUI, AdornerStretch.Stretch); AdornerPanel.SetVerticalStretch(designerUI, AdornerStretch.Stretch); var placement = new AdornerPlacementCollection(); placement.PositionRelativeToContentHeight(0, -10); placement.PositionRelativeToContentWidth(1, 0); placement.SizeRelativeToAdornerDesiredHeight(1, 0); placement.SizeRelativeToAdornerDesiredWidth(1, 0); AdornerPanel.SetPlacements(designerUI, placement); }
protected override void OnInitialized() { base.OnInitialized(); var adornerPanel = new AdornerPanel(); var border = new Border(); border.BorderThickness = new Thickness(1); border.BorderBrush = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC)); border.IsHitTestVisible = false; AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent); adornerPanel.Children.Add(border); Adorners.Add(adornerPanel); }
void CreateRenderTransformOriginThumb() { renderTransformOriginThumb = new RenderTransformOriginThumb(); renderTransformOriginThumb.Cursor = Cursors.Hand; AdornerPanel.SetPlacement(renderTransformOriginThumb, new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top) { XRelativeToContentWidth = renderTransformOrigin.X, YRelativeToContentHeight = renderTransformOrigin.Y }); adornerPanel.Children.Add(renderTransformOriginThumb); renderTransformOriginThumb.DragDelta += new DragDeltaEventHandler(renderTransformOriginThumb_DragDelta); }
public void EnsureAdornerPanelExists() { if (adornerPanel != null) { return; } adornerPanel = new AdornerPanel() { IsContentFocusable = true }; adornerPanel.Children.Add(adornerView); Adorners.Add(adornerPanel); }
/// <summary> /// Binds the <see cref="HandleLength"/> to the margin and place the handles. /// </summary> void BindAndPlaceHandle() { if (!adornerPanel.Children.Contains(this)) { adornerPanel.Children.Add(this); } if (!adornerPanel.Children.Contains(Stub)) { adornerPanel.Children.Add(Stub); } RelativePlacement placement = new RelativePlacement(); Binding binding = new Binding(); binding.Source = adornedControl; switch (orientation) { case HandleOrientation.Left: binding.Path = new PropertyPath("Margin.Left"); placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Center); placement.XOffset = -HandleLengthOffset; break; case HandleOrientation.Top: binding.Path = new PropertyPath("Margin.Top"); placement = new RelativePlacement(HorizontalAlignment.Center, VerticalAlignment.Top); placement.YOffset = -HandleLengthOffset; break; case HandleOrientation.Right: binding.Path = new PropertyPath("Margin.Right"); placement = new RelativePlacement(HorizontalAlignment.Right, VerticalAlignment.Center); placement.XOffset = HandleLengthOffset; break; case HandleOrientation.Bottom: binding.Path = new PropertyPath("Margin.Bottom"); placement = new RelativePlacement(HorizontalAlignment.Center, VerticalAlignment.Bottom); placement.YOffset = HandleLengthOffset; break; } binding.Mode = BindingMode.TwoWay; SetBinding(HandleLengthProperty, binding); AdornerPanel.SetPlacement(this, placement); AdornerPanel.SetPlacement(Stub, placement); DecideVisiblity(this.HandleLength); }
private void CreateAdorner() { if (adornerPanel == null) { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Background; var border = new Border(); border.BorderThickness = new Thickness(1); border.BorderBrush = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC)); border.IsHitTestVisible = false; AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent); adornerPanel.Children.Add(border); Adorners.Add(adornerPanel); } }
void AddAdornerToChildren(AdornerPanel adornerPanel) { UIElementCollection children = this.Children; int i = 0; for (i = 0; i < children.Count; i++) { AdornerPanel p = (AdornerPanel)children[i]; if (p.Order > adornerPanel.Order) { break; } } children.Insert(i, adornerPanel); }
protected override void Activate(ModelItem item, DependencyObject view) { view.SetValue(Control.BackgroundProperty, Brushes.Aqua); adornedControlModel = item; adornedControlModel.PropertyChanged += adornedControlModel_PropertyChanged; AdornerPanel draggablePointAdornerPanel = new AdornerPanel(); AdornerPlacementCollection placement = new AdornerPlacementCollection(); draggablePointAdornerPanel.CoordinateSpace = AdornerCoordinateSpaces.Layout; base.Activate(item, view); }
private void OnRenderTransformOriginPropertyChanged(object sender, EventArgs e) { var pRel = renderTransformOrigin; if (this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).IsSet) { pRel = (Point)this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).ValueOnInstance; } AdornerPanel.SetPlacement(renderTransformOriginThumb, new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top) { XRelativeToContentWidth = pRel.X, YRelativeToContentHeight = pRel.Y }); }
protected override void Activate(ModelItem item) { EnsurePanelCreated(); mAdornedControlModel = item; if (mButton != null) { mButton.ControlModel = item; mButton.IsExpanded = false; AdornerPanel.SetAdornerHorizontalAlignment(mButton, AdornerHorizontalAlignment.OutsideRight); AdornerPanel.SetAdornerVerticalAlignment(mButton, AdornerVerticalAlignment.Top); } base.Activate(item); }
DesignerThumb CreateThumb(PlacementAlignment alignment, Cursor cursor) { DesignerThumb designerThumb = new ResizeThumb(cursor == Cursors.SizeNS, cursor == Cursors.SizeWE); designerThumb.Cursor = cursor; designerThumb.Alignment = alignment; AdornerPanel.SetPlacement(designerThumb, Place(ref designerThumb, alignment)); adornerPanel.Children.Add(designerThumb); DragListener drag = new DragListener(designerThumb); drag.Started += drag_Started; drag.Changed += drag_Changed; drag.Completed += drag_Completed; return(designerThumb); }
ResizeThumb CreateThumb(PlacementAlignment alignment, Cursor cursor) { ResizeThumb resizeThumb = new ResizeThumbImpl(cursor == Cursors.SizeNS, cursor == Cursors.SizeWE); resizeThumb.Cursor = cursor; resizeThumb.Alignment = alignment; AdornerPanel.SetPlacement(resizeThumb, Place(ref resizeThumb, alignment)); adornerPanel.Children.Add(resizeThumb); DragListener drag = new DragListener(resizeThumb); drag.Started += new DragHandler(drag_Started); drag.Changed += new DragHandler(drag_Changed); drag.Completed += new DragHandler(drag_Completed); return(resizeThumb); }
public MarginHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation) { Debug.Assert(adornedControlItem != null); this.adornedControlItem = adornedControlItem; this.adornerPanel = adornerPanel; this.orientation = orientation; Angle = (double)orientation; grid = (Grid)adornedControlItem.Parent.Component; adornedControl = (FrameworkElement)adornedControlItem.Component; Stub = new MarginStub(this); ShouldBeVisible = true; BindAndPlaceHandle(); adornedControlItem.PropertyChanged += OnPropertyChanged; OnPropertyChanged(this.adornedControlItem, new PropertyChangedEventArgs("HorizontalAlignment")); OnPropertyChanged(this.adornedControlItem, new PropertyChangedEventArgs("VerticalAlignment")); }
/// <summary> /// Checks whether heigth/width have changed and updates the position of editor /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void PropertyChanged(object sender, PropertyChangedEventArgs e) { if (textBlock != null) { if (e.PropertyName == "Width") { placement.XOffset = Mouse.GetPosition((IInputElement)element).X - Mouse.GetPosition(textBlock).X - 2.8; editor.MaxWidth = Math.Max((ModelTools.GetWidth(element) - placement.XOffset), 0); } if (e.PropertyName == "Height") { placement.YOffset = Mouse.GetPosition((IInputElement)element).Y - Mouse.GetPosition(textBlock).Y - 1; editor.MaxHeight = Math.Max((ModelTools.GetHeight(element) - placement.YOffset), 0); } AdornerPanel.SetPlacement(editor, placement); } }
protected DesignerThumb CreateThumb(PlacementAlignment alignment, Cursor cursor) { DesignerThumb designerThumb = new DesignerThumb { Alignment = alignment, Cursor = cursor, IsPrimarySelection = true }; AdornerPanel.SetPlacement(designerThumb, Place(designerThumb, alignment)); adornerPanel.Children.Add(designerThumb); DragListener = new DragListener(designerThumb); DragListener.Started += drag_Started; DragListener.Changed += drag_Changed; DragListener.Completed += drag_Completed; return(designerThumb); }
public ResizeThumbExtension() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Foreground; this.Adorners.Add(adornerPanel); resizeThumbs = new ResizeThumb[] { CreateThumb(PlacementAlignment.TopLeft, Cursors.SizeNWSE), CreateThumb(PlacementAlignment.Top, Cursors.SizeNS), CreateThumb(PlacementAlignment.TopRight, Cursors.SizeNESW), CreateThumb(PlacementAlignment.Left, Cursors.SizeWE), CreateThumb(PlacementAlignment.Right, Cursors.SizeWE), CreateThumb(PlacementAlignment.BottomLeft, Cursors.SizeNESW), CreateThumb(PlacementAlignment.Bottom, Cursors.SizeNS), CreateThumb(PlacementAlignment.BottomRight, Cursors.SizeNWSE) }; }
public ResizeThumbExtension() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.Foreground; this.Adorners.Add(adornerPanel); _designerThumbs = new[] { CreateThumb(PlacementAlignment.TopLeft, Cursors.SizeNWSE), CreateThumb(PlacementAlignment.Top, Cursors.SizeNS), CreateThumb(PlacementAlignment.TopRight, Cursors.SizeNESW), CreateThumb(PlacementAlignment.Left, Cursors.SizeWE), CreateThumb(PlacementAlignment.Right, Cursors.SizeWE), CreateThumb(PlacementAlignment.BottomLeft, Cursors.SizeNESW), CreateThumb(PlacementAlignment.Bottom, Cursors.SizeNS), CreateThumb(PlacementAlignment.BottomRight, Cursors.SizeNWSE) }; }
protected override Size ArrangeOverride(Size arrangeBounds) { AdornerPanel parent = this.Parent as AdornerPanel; if (parent != null && parent.AdornedElement != null) { if (checkWidth) { this.ThumbVisible = PlacementOperation.GetRealElementSize(parent.AdornedElement).Width > 14; } else if (checkHeight) { this.ThumbVisible = PlacementOperation.GetRealElementSize(parent.AdornedElement).Height > 14; } } return(base.ArrangeOverride(arrangeBounds)); }
public override void BeginPlacement(PlacementOperation operation) { base.BeginPlacement(operation); if (_rects.Count > 0) _rects.Clear(); /* Add Rect of all children to _rects */ var children = this.ExtendedItem.ContentProperty.CollectionElements; foreach (var child in children) { Point p = child.View.TranslatePoint(new Point(0, 0), this.ExtendedItem.View); _rects.Add(new Rect(p, child.View.RenderSize)); } if (_adornerPanel != null && this.ExtendedItem.Services.DesignPanel.Adorners.Contains(_adornerPanel)) this.ExtendedItem.Services.DesignPanel.Adorners.Remove(_adornerPanel); /* Place the Rectangle */ _adornerPanel = new AdornerPanel(); _rectangle = new Rectangle(); _adornerPanel.SetAdornedElement(this.ExtendedItem.View, this.ExtendedItem); _adornerPanel.Children.Add(_rectangle); this.ExtendedItem.Services.DesignPanel.Adorners.Add(_adornerPanel); }
private void CreateAdorner() { if (adornerPanel == null) { if (cachedAdornerPanel == null) { cachedAdornerPanel = new AdornerPanel(); cachedAdornerPanel.Order = AdornerOrder.Background; border = new Border(); border.BorderThickness = new Thickness(1); border.BorderBrush = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC)); border.Background = Brushes.Transparent; border.IsHitTestVisible = true; border.MouseDown += border_MouseDown; border.MinWidth = 1; border.MinHeight = 1; AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent); cachedAdornerPanel.Children.Add(border); } adornerPanel = cachedAdornerPanel; Adorners.Add(adornerPanel); } }
/// <summary> /// Arranges the adorner element on the specified adorner panel. /// </summary> public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize) { Size adornerSize = CalculateSize(adorner, adornedElementSize); adorner.Arrange(new Rect(CalculatePosition(adornedElementSize, adornerSize), adornerSize)); }
public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize) { Point p = _element.TranslatePoint(new Point(), panel.AdornedElement); var rect = new Rect(p, _element.RenderSize); rect.Inflate(3, 1); adorner.Arrange(rect); }
void CreateSurface(PlacementOperation operation) { if (ExtendedItem.Services.GetService<IDesignPanel>() != null) { surface = new Canvas(); adornerPanel = new AdornerPanel(); adornerPanel.SetAdornedElement(ExtendedItem.View, ExtendedItem); AdornerPanel.SetPlacement(surface, AdornerPlacement.FillContent); adornerPanel.Children.Add(surface); ExtendedItem.Services.DesignPanel.Adorners.Add(adornerPanel); BuildMaps(operation); if (operation.Type != PlacementType.Resize && operation.PlacedItems.Count == 1) { baseline = GetBaseline(operation.PlacedItems[0].Item.View); } } }
public SkewThumbExtension() { adornerPanel = new AdornerPanel(); adornerPanel.Order = AdornerOrder.BeforeForeground; this.Adorners.Add(adornerPanel); }
public MarginHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation) { Debug.Assert(adornedControlItem!=null); this.adornedControlItem = adornedControlItem; this.adornerPanel = adornerPanel; this.orientation = orientation; Angle = (double)orientation; grid=(Grid)adornedControlItem.Parent.Component; adornedControl=(FrameworkElement)adornedControlItem.Component; Stub = new MarginStub(this); ShouldBeVisible=true; BindAndPlaceHandle(); adornedControlItem.PropertyChanged += OnPropertyChanged; OnPropertyChanged(this.adornedControlItem, new PropertyChangedEventArgs("HorizontalAlignment")); OnPropertyChanged(this.adornedControlItem, new PropertyChangedEventArgs("VerticalAlignment")); }