Example #1
0
        private void Initialize()
        {
            _listBox = new ListBox();
            var tempItem = new ListBoxItem {
                Content = "TEMP_ITEM_FOR_MEASUREMENT"
            };

            _listBox.Items.Add(tempItem);
            _listBox.Focusable = false;
            _listBox.Style     = (Style)Application.Current.Resources["AcTb_ListBoxStyle"];

            _chrome        = new SystemDropShadowChrome();
            _chrome.Margin = new Thickness(0, 0, POPUP_SHADOW_DEPTH, POPUP_SHADOW_DEPTH);
            _chrome.Child  = _listBox;

            _popup = new Popup();
            _popup.SnapsToDevicePixels = true;
            _popup.AllowsTransparency  = true;
            _popup.MinHeight           = SystemParameters.HorizontalScrollBarHeight + POPUP_SHADOW_DEPTH;
            _popup.MinWidth            = SystemParameters.VerticalScrollBarWidth + POPUP_SHADOW_DEPTH;
            _popup.VerticalOffset      = SystemParameters.PrimaryScreenHeight + 100;
            _popup.Child  = _chrome;
            _popup.IsOpen = true;

            _itemHeight = tempItem.ActualHeight;
            _listBox.Items.Clear();

            //
            GetInnerElementReferences();
            UpdateGripVisual();
            SetupEventHandlers();
        }
		public void Drawing ()
		{
			SystemDropShadowChrome s = new SystemDropShadowChrome ();
			Assert.AreEqual (s.Color, Color.FromArgb (0x71, 0, 0, 0), "Color");
			Assert.AreEqual (s.CornerRadius.BottomLeft, 0, "CornerRadius 1");
			Assert.AreEqual (s.CornerRadius.BottomRight, 0, "CornerRadius 2");
			Assert.AreEqual (s.CornerRadius.TopLeft, 0, "CornerRadius 3");
			Assert.AreEqual (s.CornerRadius.TopRight, 0, "CornerRadius 4");
			s.Width = 100;
			s.Height = 100;
			Window w = new Window ();
			w.Content = s;
			w.Show ();
			DrawingGroup g = VisualTreeHelper.GetDrawing (s);
			Assert.AreEqual (g.Children.Count, 1, "1");
			g = (DrawingGroup)g.Children [0];
			Assert.AreEqual (g.Children.Count, 9, "2");
			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [0]).Geometry).Rect, new Rect (5, 5, 5, 5), "3");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).Center, new Point (1, 1), "3 brush center");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).GradientOrigin, new Point (1, 1), "3 gradient origin");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).RadiusX, 1, "3 radius x");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).RadiusY, 1, "3 radius y");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [1]).Geometry).Rect, new Rect (10, 5, 90, 5), "4");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [1]).Brush).StartPoint, new Point (0, 1), "4 brush start point");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [1]).Brush).EndPoint, new Point (0, 0), "4 brush end point");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [2]).Geometry).Rect, new Rect (100, 5, 5, 5), "5");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).Center, new Point (0, 1), "5 brush center");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).GradientOrigin, new Point (0, 1), "5 gradient origin");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).RadiusX, 1, "5 radius x");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).RadiusY, 1, "5 radius y");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [3]).Geometry).Rect, new Rect (5, 10, 5, 90), "6");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [3]).Brush).StartPoint, new Point (1, 0), "6 brush start point");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [3]).Brush).EndPoint, new Point (0, 0), "6 brush end point");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [4]).Geometry).Rect, new Rect (100, 10, 5, 90), "7");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [4]).Brush).StartPoint, new Point (0, 0), "7 brush start point");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [4]).Brush).EndPoint, new Point (1, 0), "7 brush end point");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [5]).Geometry).Rect, new Rect (5, 100, 5, 5), "8");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).Center, new Point (1, 0), "8 brush center");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).GradientOrigin, new Point (1, 0), "8 gradient origin");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).RadiusX, 1, "8 radius x");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).RadiusY, 1, "8 radius y");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [6]).Geometry).Rect, new Rect (10, 100, 90, 5), "9");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [6]).Brush).StartPoint, new Point (0, 0), "9 brush start point");
			Assert.AreEqual (((LinearGradientBrush)((GeometryDrawing)g.Children [6]).Brush).EndPoint, new Point (0, 1), "9 brush end point");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [7]).Geometry).Rect, new Rect (100, 100, 5, 5), "10");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).Center, new Point (0, 0), "10 brush center");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).GradientOrigin, new Point (0, 0), "10 gradient origin");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).RadiusX, 1, "10 radius x");
			Assert.AreEqual (((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).RadiusY, 1, "10 radius y");

			Assert.AreEqual (((RectangleGeometry)((GeometryDrawing)g.Children [8]).Geometry).Rect, new Rect (10, 10, 90, 90), "11");
			Assert.AreEqual (((SolidColorBrush)((GeometryDrawing)g.Children [8]).Brush).Color, s.Color, "10 color");
		}
Example #3
0
        private void WindowBaseInitialized(object sender, System.EventArgs e)
        {
            SetResourceReference(Window.StyleProperty, "Window");
            ResourceDictionary resource = new ResourceDictionary();
            ////resource.Source = new Uri("pack://application:,,,/WindowResource.xaml");
            //  this.Resources.MergedDictionaries.Add(resource);

            SystemDropShadowChrome dropShadow = new SystemDropShadowChrome();

            dropShadow.SetResourceReference(Control.StyleProperty, "WindowShadow");

            Border windowBorder = new Border();

            windowBorder.SetResourceReference(Control.StyleProperty, "WindowBorder");
            dropShadow.Child = windowBorder;

            Grid grid = new Grid();

            grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(40.0)
            });
            grid.RowDefinitions.Add(new RowDefinition());
            windowBorder.Child = grid;

            Border headerBorder = new Border();

            headerBorder.SetResourceReference(Control.StyleProperty, "HeaderBorder");
            headerBorder.MouseLeftButtonDown += DragWindow;
            grid.Children.Add(headerBorder);
            Grid.SetRow(headerBorder, 0);

            ContentPresenter contentPresenter = new ContentPresenter();

            contentPresenter.Content = this.Content;
            grid.Children.Add(contentPresenter);
            Grid.SetRow(contentPresenter, 1);

            this.Content = dropShadow;
        }
Example #4
0
        private void Initialize()
        {
            _listBox = new ListBox();
            var tempItem = new ListBoxItem {
                Content = "TEMP_ITEM_FOR_MEASUREMENT"
            };

            _listBox.Items.Add(tempItem);
            _listBox.Focusable = false;
            _listBox.Style     = (Style)Application.Current.Resources["AcTb_ListBoxStyle"];

            _chrome = new SystemDropShadowChrome
            {
                Margin = new Thickness(0, 0, PopupShadowDepth, PopupShadowDepth),
                Child  = _listBox
            };

            _popup = new Popup
            {
                SnapsToDevicePixels = true,
                AllowsTransparency  = true,
                MinHeight           = SystemParameters.HorizontalScrollBarHeight + PopupShadowDepth,
                MinWidth            = SystemParameters.VerticalScrollBarWidth + PopupShadowDepth,
                //VerticalOffset = SystemParameters.PrimaryScreenHeight + 100,
                Child           = _chrome,
                IsOpen          = true,
                Placement       = PlacementMode.Bottom,
                PlacementTarget = _textBox
            };

            _itemHeight = tempItem.ActualHeight;
            _listBox.Items.Clear();

            //
            GetInnerElementReferences();
            UpdateGripVisual();
            SetupEventHandlers();
        }
Example #5
0
        private static void Control_Loaded(object sender, EventArgs e)
        {
            Control control = sender as Control;

            if (control == null || control.Template == null)
            {
                return;
            }

            control.ApplyTemplate();

            CornerRadius cornerRadius = GetCornerRadius(control);

            Control toggleButton = control.Template.FindName("toggleButton", control) as Control;

            if (control is ComboBox && toggleButton != null)
            {
                toggleButton.ApplyTemplate();

                // Set border radius for border radius border
                Border toggleButtonBorder = toggleButton.Template.FindName("templateRoot", toggleButton) as Border;
                toggleButtonBorder.CornerRadius = cornerRadius;

                // Expand padding for combobox to avoid text clipping by border radius
                control.Padding = new Thickness(
                    control.Padding.Left + cornerRadius.BottomLeft,
                    control.Padding.Top,
                    control.Padding.Right + cornerRadius.BottomRight,
                    control.Padding.Bottom);

                // Decrease width of dropdown and center it to avoid showing "sticking" dropdown corners
                Popup popup = control.Template.FindName("PART_Popup", control) as Popup;

                if (popup != null)
                {
                    double offset = cornerRadius.BottomLeft - 1;
                    if (offset > 0)
                    {
                        popup.HorizontalOffset = offset;
                    }
                }

                SystemDropShadowChrome shadowChrome = control.Template.FindName("shadow", control) as SystemDropShadowChrome;

                if (shadowChrome != null)
                {
                    double minWidth = control.ActualWidth - cornerRadius.BottomLeft - cornerRadius.BottomRight;
                    if (minWidth > 0)
                    {
                        shadowChrome.MinWidth = minWidth;
                    }
                }
            }

            // setting borders for non-combobox controls
            Border border = control.Template.FindName("border", control) as Border;

            if (border == null)
            {
                return;
            }

            border.CornerRadius = cornerRadius;
        }
        public void Drawing()
        {
            SystemDropShadowChrome s = new SystemDropShadowChrome();

            Assert.AreEqual(s.Color, Color.FromArgb(0x71, 0, 0, 0), "Color");
            Assert.AreEqual(s.CornerRadius.BottomLeft, 0, "CornerRadius 1");
            Assert.AreEqual(s.CornerRadius.BottomRight, 0, "CornerRadius 2");
            Assert.AreEqual(s.CornerRadius.TopLeft, 0, "CornerRadius 3");
            Assert.AreEqual(s.CornerRadius.TopRight, 0, "CornerRadius 4");
            s.Width  = 100;
            s.Height = 100;
            Window w = new Window();

            w.Content = s;
            w.Show();
            DrawingGroup g = VisualTreeHelper.GetDrawing(s);

            Assert.AreEqual(g.Children.Count, 1, "1");
            g = (DrawingGroup)g.Children [0];
            Assert.AreEqual(g.Children.Count, 9, "2");
            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [0]).Geometry).Rect, new Rect(5, 5, 5, 5), "3");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).Center, new Point(1, 1), "3 brush center");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).GradientOrigin, new Point(1, 1), "3 gradient origin");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).RadiusX, 1, "3 radius x");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [0]).Brush).RadiusY, 1, "3 radius y");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [1]).Geometry).Rect, new Rect(10, 5, 90, 5), "4");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [1]).Brush).StartPoint, new Point(0, 1), "4 brush start point");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [1]).Brush).EndPoint, new Point(0, 0), "4 brush end point");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [2]).Geometry).Rect, new Rect(100, 5, 5, 5), "5");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).Center, new Point(0, 1), "5 brush center");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).GradientOrigin, new Point(0, 1), "5 gradient origin");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).RadiusX, 1, "5 radius x");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [2]).Brush).RadiusY, 1, "5 radius y");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [3]).Geometry).Rect, new Rect(5, 10, 5, 90), "6");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [3]).Brush).StartPoint, new Point(1, 0), "6 brush start point");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [3]).Brush).EndPoint, new Point(0, 0), "6 brush end point");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [4]).Geometry).Rect, new Rect(100, 10, 5, 90), "7");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [4]).Brush).StartPoint, new Point(0, 0), "7 brush start point");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [4]).Brush).EndPoint, new Point(1, 0), "7 brush end point");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [5]).Geometry).Rect, new Rect(5, 100, 5, 5), "8");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).Center, new Point(1, 0), "8 brush center");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).GradientOrigin, new Point(1, 0), "8 gradient origin");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).RadiusX, 1, "8 radius x");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [5]).Brush).RadiusY, 1, "8 radius y");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [6]).Geometry).Rect, new Rect(10, 100, 90, 5), "9");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [6]).Brush).StartPoint, new Point(0, 0), "9 brush start point");
            Assert.AreEqual(((LinearGradientBrush)((GeometryDrawing)g.Children [6]).Brush).EndPoint, new Point(0, 1), "9 brush end point");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [7]).Geometry).Rect, new Rect(100, 100, 5, 5), "10");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).Center, new Point(0, 0), "10 brush center");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).GradientOrigin, new Point(0, 0), "10 gradient origin");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).RadiusX, 1, "10 radius x");
            Assert.AreEqual(((RadialGradientBrush)((GeometryDrawing)g.Children [7]).Brush).RadiusY, 1, "10 radius y");

            Assert.AreEqual(((RectangleGeometry)((GeometryDrawing)g.Children [8]).Geometry).Rect, new Rect(10, 10, 90, 90), "11");
            Assert.AreEqual(((SolidColorBrush)((GeometryDrawing)g.Children [8]).Brush).Color, s.Color, "10 color");
        }