public static void Start(ref GrayOutDesignerExceptActiveArea grayOut, ServiceContainer services, UIElement activeContainer, Rect activeRectInActiveContainer) { Debug.Assert(services != null); Debug.Assert(activeContainer != null); DesignPanel designPanel = services.GetService <IDesignPanel>() as DesignPanel; OptionService optionService = services.GetService <OptionService>(); if (designPanel != null && grayOut == null && optionService != null && optionService.GrayOutDesignSurfaceExceptParentContainerWhenDragging) { grayOut = new GrayOutDesignerExceptActiveArea(); grayOut.designSurfaceRectangle = new RectangleGeometry( new Rect(0, 0, ((Border)designPanel.Child).Child.RenderSize.Width, ((Border)designPanel.Child).Child.RenderSize.Height)); grayOut.designPanel = designPanel; grayOut.adornerPanel = new AdornerPanel(); grayOut.adornerPanel.Order = AdornerOrder.BehindForeground; grayOut.adornerPanel.SetAdornedElement(designPanel.Context.RootItem.View, null); grayOut.adornerPanel.Children.Add(grayOut); grayOut.ActiveAreaGeometry = new RectangleGeometry(activeRectInActiveContainer, 0, 0, (Transform)activeContainer.TransformToVisual(grayOut.adornerPanel.AdornedElement)); Animate(grayOut.GrayOutBrush, Brush.OpacityProperty, MaxOpacity); designPanel.Adorners.Add(grayOut.adornerPanel); } }
public override Point PlacePoint(Point point) { if (surface == null) { return(base.PlacePoint(point)); } DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel; if (designPanel == null || !designPanel.UseRasterPlacement) { return(base.PlacePoint(point)); } if (Keyboard.IsKeyDown(Key.LeftCtrl)) { surface.Children.Clear(); rasterDrawn = false; return(base.PlacePoint(point)); } drawRaster(); point.Y = ((int)point.Y / raster) * raster; point.X = ((int)point.X / raster) * raster; return(point); }
public object ToContract(Control control) { var content = DesignPanel.GetContent(control); var view = content.ToNative(true); return(FrameworkElementAdapters.ViewToContractAdapter(view)); }
internal static void Start(ref InfoTextEnterArea grayOut, ServiceContainer services, UIElement activeContainer, Rect activeRectInActiveContainer, string text) { Debug.Assert(services != null); Debug.Assert(activeContainer != null); DesignPanel designPanel = services.GetService <IDesignPanel>() as DesignPanel; OptionService optionService = services.GetService <OptionService>(); if (designPanel != null && grayOut == null && optionService != null && optionService.GrayOutDesignSurfaceExceptParentContainerWhenDragging) { grayOut = new InfoTextEnterArea(); grayOut.designSurfaceRectangle = new RectangleGeometry( new Rect(0, 0, ((Border)designPanel.Child).Child.RenderSize.Width, ((Border)designPanel.Child).Child.RenderSize.Height)); grayOut.designPanel = designPanel; grayOut.adornerPanel = new AdornerPanel(); grayOut.adornerPanel.Order = AdornerOrder.Background; grayOut.adornerPanel.SetAdornedElement(designPanel.Context.RootItem.View, null); grayOut.ActiveAreaGeometry = new RectangleGeometry(activeRectInActiveContainer, 0, 0, (Transform)activeContainer.TransformToVisual(grayOut.adornerPanel.AdornedElement)); var tb = new TextBlock() { Text = text }; tb.FontSize = 10; tb.ClipToBounds = true; tb.Width = ((FrameworkElement)activeContainer).ActualWidth; tb.Height = ((FrameworkElement)activeContainer).ActualHeight; tb.VerticalAlignment = VerticalAlignment.Top; tb.HorizontalAlignment = HorizontalAlignment.Left; tb.RenderTransform = (Transform)activeContainer.TransformToVisual(grayOut.adornerPanel.AdornedElement); grayOut.adornerPanel.Children.Add(tb); designPanel.Adorners.Add(grayOut.adornerPanel); } }
public override void BeforeSetPosition(PlacementOperation operation) { base.BeforeSetPosition(operation); if (surface == null) { return; } DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel; if (designPanel == null || !designPanel.UseRasterPlacement) { return; } if (Keyboard.IsKeyDown(Key.LeftCtrl)) { surface.Children.Clear(); rasterDrawn = false; return; } drawRaster(); var bounds = operation.PlacedItems[0].Bounds; bounds.Y = ((int)bounds.Y / raster) * raster; bounds.X = ((int)bounds.X / raster) * raster; bounds.Width = Convert.ToInt32((bounds.Width / raster)) * raster; bounds.Height = Convert.ToInt32((bounds.Height / raster)) * raster; operation.PlacedItems[0].Bounds = bounds; }
protected override void OnInitialized() { base.OnInitialized(); panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel; panel.ContextMenu = new RightClickContextMenu(ExtendedItem); }
protected override void OnInitialized() { base.OnInitialized(); element = ExtendedItem.Component as FrameworkElement; editor = new InPlaceEditor(ExtendedItem); editor.DataContext = element; editor.Visibility = Visibility.Hidden; // Hide the editor first, It's visibility is governed by mouse events. placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top); adornerPanel.Children.Add(editor); Adorners.Add(adornerPanel); designPanel = ExtendedItem.Services.GetService <IDesignPanel>() as DesignPanel; Debug.Assert(designPanel != null); /* Add mouse event handlers */ designPanel.PreviewMouseLeftButtonDown += MouseDown; designPanel.MouseLeftButtonUp += MouseUp; designPanel.PreviewMouseMove += MouseMove; /* To update the position of Editor in case of resize operation */ ExtendedItem.PropertyChanged += PropertyChanged; eventsAdded = true; }
//private void TreeView_MouseMove(object sender, MouseEventArgs e) //{ // if (e.LeftButton == MouseButtonState.Pressed && ToolBoxView.SelectedItem is IControl controlItem) // { // var data = new DataObject(); // data.SetData("control", controlItem); // DragDrop.DoDragDrop(sender as DependencyObject, data, DragDropEffects.Copy); // } //} private void UserControl_KeyDown(object sender, KeyEventArgs e) { if ((e.Key == Key.Back || e.Key == Key.Delete)) { DesignPanel.RemoveChildren(); } }
private void CreateDesignerHost() { _designerViewContent = new FormsDesignerViewContent(this); _designerViewContent.Reload(); _designPanel = new DesignPanel(_designerViewContent.DesignSurface); _designPanel.Dock = DockStyle.Fill; Controls.Add(_designPanel); }
public void LoadFromFileName(string fileName) { Stream stream = new FileStream(fileName, FileMode.Open); BinaryReader binaryReader = new BinaryReader(stream, System.Text.Encoding.Unicode); byte[] buffer = binaryReader.ReadBytes((int)stream.Length); //string xmlContent = File.ReadAllText(fileName); try { string xmlContent = System.Text.Encoding.Unicode.GetString(buffer); binaryReader.Close(); stream.Close(); if (xmlContent.IndexOf("<SnControl.Solution>") == -1) { xmlContent = File.ReadAllText(fileName); } string xmlSolutionContent = xmlContent.Substring(xmlContent.IndexOf("<SnControl.Solution>"), xmlContent.IndexOf("</SnControl.Solution>") - xmlContent.IndexOf("<SnControl.Solution>")); xmlSolutionContent += "</SnControl.Solution>"; string xmlFormContent = xmlContent.Substring(xmlContent.IndexOf("<System.Windows.Forms.Form"), xmlContent.IndexOf("</QuerySolution>") - xmlContent.IndexOf("<System.Windows.Forms.Form")); XmlSolutionReader xmlSolutionReader = new XmlSolutionReader(_solution); _solution = xmlSolutionReader.SetUpSolution(xmlSolutionContent); if (_solution == null) { Controls.Clear(); return; } SolutionInstance.GetInstance().Solution = _solution; IDesignerLoaderProvider loaderProvider = new XmlDesignerLoaderProvider(xmlFormContent); IDesignerGenerator generator = new XmlDesignerGenerator(); _designerViewContent = new FormsDesignerViewContent(this, loaderProvider, generator); //加载XML内容 _designerViewContent.Reload(); _designPanel = new DesignPanel(_designerViewContent.DesignSurface); _designPanel.Dock = DockStyle.Fill; Controls.Add(_designPanel); if (!_designPanel.SetRootDesigner()) { Controls.Clear(); return; } _designerViewContent.PropertyContainer.Host = _designPanel.Host; _designerViewContent.PropertyContainer.SelectableObjects = _designerViewContent.Host.Container.Components; } catch (ApplicationException e) { MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
protected override void OnInitialized() { base.OnInitialized(); contextMenu = new WrapItemContextMenu(ExtendedItem); panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel; if (panel != null) panel.AddContextMenu(contextMenu); }
protected override void OnInitialized() { base.OnInitialized(); contextMenu = new ArrangeItemsContextMenu(ExtendedItem); panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel; if (panel != null) { panel.AddContextMenu(contextMenu); } }
protected override void OnInitialized() { base.OnInitialized(); contextMenu = new PathContextMenu(ExtendedItem); panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel; if (panel != null) { panel.AddContextMenu(contextMenu, this.GetType().GetCustomAttribute <ExtensionAttribute>().Order); } }
public CatalogController(CatalogListPanel clp, DesignPanel dp) { this.dp = dp; productList = Db.DatabaseController.productList; this.clp = clp; //vanillaList = productList; productPanelList = new List <CatalogProductPanel>(); // The standard sorting, ordering and searchqueries are set everytime the program starts. currentOrdering = "Naam: A-Z"; currentSorting = "Alle"; currentSearch = ""; }
public override void BeginPlacement(PlacementOperation operation) { base.BeginPlacement(operation); DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel; if (designPanel != null) { raster = designPanel.RasterWidth; } CreateSurface(operation); }
public DesignPanelTests() { dp = new DesignPanel(); dpc = new DesignPanelController(dp); room = new Room(); room.productList = new List <Product>(); lines = new List <Line> { new Line(10, 10, 70, 50), new Line(70, 50, 30, 10), new Line(30, 10, 10, 50), new Line(10, 50, 10, 10) }; }
private void BrowseComponentImageDialog_FileOk(object sender, CancelEventArgs e) { var image = new Bitmap(BrowseComponentImageDialog.FileName); var control = new ControlWithImage(image, this); if (MessageBox.Show("Do you want to make this image transparent?", "Transparent", MessageBoxButtons.YesNo) == DialogResult.Yes) { control.Transparent = true; } DesignPanel.Controls.Add(control); control.Level = _lastLevel++; DesignPanel.Refresh(); _addedImages.Add(control); }
public void PlaceProduct_ShouldAddProductToDesignPanel_WhenProductIsDropped() { //Arrange Product p = new Chair(); DesignPanel dp = new DesignPanel(); Room r = new Room(); dp.rDesign = r; dp.rDesign.productList = new List <Product>(); //Act dp.AddProduct(p); int expected = 1; //Assert Assert.AreEqual(expected, dp.rDesign.productList.Count); }
public void DeleteProduct_ShouldDeleteProductFromDesignPanel_WhenDeleteButtonIsClicked() { //Arrange Product p = new Chair(); DesignPanel dp = new DesignPanel(); Room r = new Room(); dp.rDesign = r; dp.rDesign.productList = new List <Product>(); dp.AddProduct(p); //Act dp.DeleteProduct(p); int expected = 0; //Assert Assert.AreEqual(expected, dp.rDesign.productList.Count); }
protected override void OnInitialized() { base.OnInitialized(); element = ExtendedItem.Component as FrameworkElement; editor = new InPlaceEditor(ExtendedItem); editor.DataContext = element; editor.Visibility = Visibility.Hidden; // Hide the editor first, It's visibility is governed by mouse events. placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top); adornerPanel.Children.Add(editor); Adorners.Add(adornerPanel); designPanel = ExtendedItem.Services.GetService<IDesignPanel>() as DesignPanel; Debug.Assert(designPanel!=null); /* Add mouse event handlers */ designPanel.PreviewMouseLeftButtonDown += MouseDown; designPanel.PreviewMouseLeftButtonUp += MouseUp; designPanel.PreviewMouseMove += MouseMove; /* To update the position of Editor in case of resize operation */ ExtendedItem.PropertyChanged += PropertyChanged; }
public DesignPanelController(DesignPanel dp) { this.designPanel = dp; }
public override void BeforeSetPosition(PlacementOperation operation) { base.BeforeSetPosition(operation); if (surface == null) { return; } DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel; if (designPanel == null || !designPanel.UseSnaplinePlacement) { return; } surface.Children.Clear(); if (Keyboard.IsKeyDown(Key.LeftCtrl)) { return; } Rect bounds = Rect.Empty; foreach (var item in operation.PlacedItems) { bounds.Union(item.Bounds); } var horizontalInput = new List <Snapline>(); var verticalInput = new List <Snapline>(); var info = operation.PlacedItems[0]; if (operation.Type == PlacementType.Resize) { AddLines(bounds, 0, false, horizontalInput, verticalInput, info.ResizeThumbAlignment); } else { AddLines(bounds, 0, false, horizontalInput, verticalInput, null); if (baseline.HasValue) { var textOffset = bounds.Top + baseline.Value; horizontalInput.Add(new Snapline() { Group = 1, Offset = textOffset, Start = bounds.Left, End = bounds.Right }); } } // debug //foreach (var t in horizontalMap.Concat(horizontalInput)) { // surface.Children.Add(new Line() { X1 = t.Start, X2 = t.End, Y1 = t.Offset, Y2 = t.Offset, Stroke = Brushes.Black }); //} //foreach (var t in verticalMap.Concat(verticalInput)) { // surface.Children.Add(new Line() { X1 = t.Offset, X2 = t.Offset, Y1 = t.Start , Y2 = t.End, Stroke = Brushes.Black }); //} //return; List <Snapline> drawLines; double delta; if (Snap(horizontalInput, horizontalMap, Accuracy, out drawLines, out delta)) { if (operation.Type == PlacementType.Resize) { if (info.ResizeThumbAlignment.Vertical == VerticalAlignment.Top) { bounds.Y += delta; bounds.Height = Math.Max(0, bounds.Height - delta); } else { bounds.Height = Math.Max(0, bounds.Height + delta); } info.Bounds = bounds; } else { foreach (var item in operation.PlacedItems) { var r = item.Bounds; r.Y += delta; item.Bounds = r; } } foreach (var d in drawLines) { DrawLine(d.Start, d.Offset, d.End, d.Offset); } } if (Snap(verticalInput, verticalMap, Accuracy, out drawLines, out delta)) { if (operation.Type == PlacementType.Resize) { if (info.ResizeThumbAlignment.Horizontal == HorizontalAlignment.Left) { bounds.X += delta; bounds.Width = Math.Max(0, bounds.Width - delta); } else { bounds.Width = Math.Max(0, bounds.Width + delta); } info.Bounds = bounds; } else { foreach (var item in operation.PlacedItems) { var r = item.Bounds; r.X += delta; item.Bounds = r; } } foreach (var d in drawLines) { DrawLine(d.Offset, d.Start, d.Offset, d.End); } } }
public DragController(Product p, DesignPanel dp) { this.dp = dp; this.p = p; }
public override Point PlacePoint(Point point) { if (surface == null) { return(base.PlacePoint(point)); } DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel; if (designPanel == null || !designPanel.UseSnaplinePlacement) { return(base.PlacePoint(point)); } ; surface.Children.Clear(); if (Keyboard.IsKeyDown(Key.LeftCtrl)) { return(base.PlacePoint(point)); } ; Rect bounds = new Rect(point.X, point.Y, 0, 0); var horizontalInput = new List <Snapline>(); var verticalInput = new List <Snapline>(); AddLines(bounds, 0, false, horizontalInput, verticalInput, null); if (baseline.HasValue) { var textOffset = bounds.Top + baseline.Value; horizontalInput.Add(new Snapline() { Group = 1, Offset = textOffset, Start = bounds.Left, End = bounds.Right }); } List <Snapline> drawLines; double delta; var newPoint = base.PlacePoint(point); if (Snap(horizontalInput, horizontalMap, SnaplineAccuracy, out drawLines, out delta)) { foreach (var d in drawLines) { DrawLine(d.Start, d.Offset + d.DrawOffset, d.End, d.Offset + d.DrawOffset); } point.Y += delta; } else { point.Y = newPoint.Y; } if (Snap(verticalInput, verticalMap, SnaplineAccuracy, out drawLines, out delta)) { foreach (var d in drawLines) { DrawLine(d.Offset + d.DrawOffset, d.Start, d.Offset + d.DrawOffset, d.End); } point.X += delta; } else { point.X = newPoint.X; } return(point); }
private void Designer_KeyDown(object sender, KeyEventArgs e) { DesignPanel.OnKeyDown(sender, e); }