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 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);
		}
        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);
        }
        public override Size ArrangeChildren(FrameworkElement parent, UIElementCollection internalChildren, Size finalSize)
        {
            AdornerPanel adornerPanel = parent as AdornerPanel;

            if (adornerPanel == null)
            {
                return(finalSize);
            }
            ModelItem model          = adornerPanel.Model;
            ViewItem  adornedElement = model == null ? (ViewItem)null : model.View;
            Vector    vector         = (Vector)parent.GetValue(TransformAwareAdornerLayout.DesignerElementScalingFactorWithZoom);

            foreach (UIElement uiElement in internalChildren)
            {
                uiElement.SetValue(TransformAwareAdornerLayout.DesignerElementScalingFactorWithZoom, (object)vector);
                AdornerPlacementCollection currentPlacements = AdornerPanel.GetCurrentPlacements(uiElement);
                currentPlacements.ComputePlacement(AdornerCoordinateSpaces.Default, uiElement, adornedElement, new Vector(1.0, 1.0), finalSize);
                Rect finalRect = new Rect((Point)currentPlacements.TopLeft, (Size)currentPlacements.Size);
                finalRect.Width  = BaseAdornerLayout.ValidateDouble(finalRect.Width, uiElement.RenderSize.Width);
                finalRect.Height = BaseAdornerLayout.ValidateDouble(finalRect.Height, uiElement.RenderSize.Height);
                uiElement.Arrange(finalRect);
                if (uiElement is FrameworkElement)
                {
                    if (adornerPanel.IsMirroredTransform)
                    {
                        uiElement.SetValue(FrameworkElement.FlowDirectionProperty, (object)FlowDirection.RightToLeft);
                        uiElement.RenderTransform = TransformAwareAdornerLayout.RTLAdornerTransformGroup.Create(uiElement, finalRect.Width);
                    }
                    else
                    {
                        uiElement.RenderTransform = TransformAwareAdornerLayout.RTLAdornerTransformGroup.Unwrap(uiElement);
                        uiElement.SetValue(FrameworkElement.FlowDirectionProperty, (object)FlowDirection.LeftToRight);
                    }
                }
            }
            return(finalSize);
        }
        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.
            spaceSlider.Minimum             = -20;
            spaceSlider.Maximum             = 20;
            spaceSlider.TickFrequency       = 1;
            spaceSlider.IsSnapToTickEnabled = true;

            spaceSlider.Background = new SolidColorBrush(Colors.Green);
            spaceSlider.Foreground = new SolidColorBrush(Colors.Red);

            // Setup the adorner panel.
            // All adorners are placed in an AdornerPanel
            // for sizing and layout support.
            AdornerPanel myPanel = this.Panel;

            AdornerPanel.SetHorizontalStretch(spaceSlider, AdornerStretch.Stretch);
            AdornerPanel.SetVerticalStretch(spaceSlider, AdornerStretch.None);

            AdornerPlacementCollection placement = new AdornerPlacementCollection();

            // The adorner's width is relative to the content.
            // The slider extends the full width of the control it adorns.
            placement.SizeRelativeToContentWidth(1.0, 0);

            // The adorner's height is the same as the slider's.
            placement.SizeRelativeToAdornerDesiredHeight(1.0, 0);

            // Position the adorner above the control it adorns.
            placement.PositionRelativeToAdornerHeight(-2.0, 0);

            // Position the adorner up 5 pixels. This demonstrates
            // that these placement calls are additive. These two calls
            // are equivalent to the following single call:
            // PositionRelativeToAdornerHeight(-1.0, -5).
            placement.PositionRelativeToAdornerHeight(0, -5);

            AdornerPanel.SetPlacements(spaceSlider, placement);

            // Initialize the slider when it is loaded.
            spaceSlider.Loaded += new RoutedEventHandler(slider_Loaded);

            // Handle the value changes of the slider control.
            spaceSlider.ValueChanged +=
                new RoutedPropertyChangedEventHandler <double>(
                    slider_ValueChanged);

            spaceSlider.PreviewMouseLeftButtonUp +=
                new System.Windows.Input.MouseButtonEventHandler(
                    slider_MouseLeftButtonUp);

            spaceSlider.PreviewMouseLeftButtonDown +=
                new System.Windows.Input.MouseButtonEventHandler(
                    slider_MouseLeftButtonDown);
            base.Activate(item);
        }
Пример #6
0
        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);
        }
        // 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, DependencyObject view)
        {
            //MessageBox.Show("OpacitySliderAdornerProvider Activate");

            // 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;

            AdornerPanel.SetHorizontalStretch(opacitySlider, AdornerStretch.Stretch);
            AdornerPanel.SetVerticalStretch(opacitySlider, AdornerStretch.None);

            AdornerPlacementCollection placement = new AdornerPlacementCollection();

            // The adorner's width is relative to the content.
            // The slider extends the full width of the control it adorns.
            placement.SizeRelativeToContentWidth(1.0, 0);

            // The adorner's height is the same as the slider's.
            placement.SizeRelativeToAdornerDesiredHeight(1.0, 0);

            // Position the adorner above the control it adorns.
            placement.PositionRelativeToAdornerHeight(-1.0, 0);

            // Position the adorner up 5 pixels. This demonstrates
            // that these placement calls are additive. These two calls
            // are equivalent to the following single call:
            // PositionRelativeToAdornerHeight(-1.0, -5).
            placement.PositionRelativeToAdornerHeight(0, -5);

            AdornerPanel.SetPlacements(opacitySlider, placement);

            // 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, view);
        }