Beispiel #1
0
        private IBorderRenderElement CreateRenderElement(IRenderElementFactory factory)
        {
            IBorderRenderElement borderRenderElement = factory.CreateBorderRenderElement(this);

            borderRenderElement.Background       = Background;
            borderRenderElement.BorderBrush      = BorderBrush;
            borderRenderElement.BorderThickness  = BorderThickness;
            borderRenderElement.Bounds           = new Rect(VisualSize);
            borderRenderElement.CornerRadius     = CornerRadius;
            borderRenderElement.IsHitTestVisible = IsHitTestVisible;

            return(borderRenderElement);
        }
Beispiel #2
0
        protected override object CreateRenderElementContentOverride(IRenderElementFactory factory)
        {
            if (borderRenderElement == null)
            {
                borderRenderElement = factory.CreateBorderRenderElement(this);

                borderRenderElement.Background       = Background;
                borderRenderElement.BorderBrush      = BorderBrush;
                borderRenderElement.BorderThickness  = BorderThickness;
                borderRenderElement.Bounds           = new Rect(VisualSize);
                borderRenderElement.CornerRadius     = CornerRadius;
                borderRenderElement.IsHitTestVisible = IsHitTestVisible;
            }

            return(borderRenderElement);
        }
Beispiel #3
0
        public void BorderRenderTest()
        {
            Brush     backgroundBrush = new LinearGradientBrush(30, Colors.Blue, Colors.Green);
            Brush     borderBrush     = new LinearGradientBrush(-30, Colors.Red, Colors.Blue);
            Thickness borderThickness = new Thickness(10, 20, 30, 40);

            Border border = new Border
            {
                Child = new FrameworkElement {
                    Width = 200, Height = 100
                },
                Background      = backgroundBrush,
                BorderBrush     = borderBrush,
                BorderThickness = borderThickness,
            };

            border.Measure(Size.Infinity);
            border.Arrange(new Rect(border.DesiredSize));

            IRenderElementFactory factory = TestRenderElementFactory.Default;


            IVisualRenderElement visualRenderElement = border.GetRenderElement(factory);

            Assert.AreEqual(new Rect(240, 160), visualRenderElement.Bounds);

            Assert.AreEqual(1, visualRenderElement.Children.Count());

            IBorderRenderElement borderRenderElement = visualRenderElement.Content as IBorderRenderElement;

            Assert.IsNotNull(borderRenderElement);
            Assert.AreEqual(backgroundBrush, borderRenderElement.Background);
            Assert.AreEqual(borderBrush, borderRenderElement.BorderBrush);
            Assert.AreEqual(borderThickness, borderRenderElement.BorderThickness);
            Assert.AreEqual(new Rect(240, 160), borderRenderElement.Bounds);

            IVisualRenderElement childVisualRenderElement = visualRenderElement.Children.Single() as IVisualRenderElement;

            Assert.IsNotNull(childVisualRenderElement);
            Assert.AreEqual(new Rect(10, 20, 200, 100), childVisualRenderElement.Bounds);

            border.Child = null;
            Assert.AreEqual(0, visualRenderElement.Children.Count());
        }