示例#1
0
        public static System.Windows.Media.Brush PatternToBrush(HatchPattern myPattern, AciColor myColor)
        {
            VisualBrush vBrush = new VisualBrush();

            System.Windows.Media.Brush resBrush = vBrush;

            if (myPattern.Fill == netDxf.Entities.HatchFillType.PatternFill)
            {
                System.Windows.Shapes.Path path1 = new System.Windows.Shapes.Path();
                path1.StrokeThickness = 1;
                path1.Stroke          = AciColorToBrush(myColor);

                System.Windows.Point p0 = TypeConverter.Vertex2ToPoint(myPattern.LineDefinitions[0].Origin);
                double deltaY           = myPattern.LineDefinitions[0].Delta.Y;


                if (myPattern.Name == "LINE")
                {
                    System.Windows.Point p1 = p0;
                    System.Windows.Point p2 = new System.Windows.Point(p1.X, p1.Y + 10);
                    /*path1.Data=Geometry.Parse("M 5 0 L 5 10 Z");*/
                    path1.Data = DrawUtils.GetStreamGeoLine(p1, p2);
                }

                vBrush.TileMode = TileMode.Tile;
                vBrush.Viewport = new Rect(p0.X, p0.Y, deltaY, deltaY);

                vBrush.ViewportUnits = BrushMappingMode.Absolute;
                vBrush.Viewbox       = new Rect(p0.X, p0.Y, 10, 10);

                vBrush.ViewboxUnits = BrushMappingMode.Absolute;
                vBrush.Visual       = path1;

                vBrush.RelativeTransform = new RotateTransform(myPattern.Angle, 5, 5);

                resBrush = vBrush;
            }
            else if (myPattern.Fill == netDxf.Entities.HatchFillType.SolidFill)
            {
                if (myPattern.GetType() == typeof(HatchGradientPattern))
                {
                    resBrush = PatternSolidFillToBrush((HatchGradientPattern)myPattern, myColor);
                }
            }

            return(resBrush);
        }
示例#2
0
		/*Draw Mesh*/
		public static void DrawMesh(Mesh xMesh, Canvas mainCanvas)
		{
			
			System.Windows.Shapes.Polygon wPoly = new System.Windows.Shapes.Polygon();
			
			foreach(netDxf.Entities.MeshEdge xEdge in xMesh.Edges)
			{
				
				System.Windows.Point myPt1 = TypeConverter.Vertex3ToPoint(xMesh.Vertexes[xEdge.StartVertexIndex]);
				System.Windows.Point myPt2 = TypeConverter.Vertex3ToPoint(xMesh.Vertexes[xEdge.EndVertexIndex]);
				myPt1.Y = mainCanvas.Height - myPt1.Y;
				myPt2.Y = mainCanvas.Height - myPt2.Y;
				
				System.Windows.Shapes.Line wLine = DrawUtils.GetLine(myPt1.X, myPt1.Y, myPt2.X, myPt2.Y);
				
				
				TypeConverter.Entity2Shape(xMesh, wLine);
				
				mainCanvas.Children.Add(wLine);
			}
			
		}
示例#3
0
		/*Draw Underlay*/
		public static void DrawUnderlay(Underlay xUnderlay, Canvas mainCanvas)
		{
			/*DrawUtils.DrawPoint(xUnderlay.Position, mainCanvas, Colors.Red, 10, 0.5);*/
			DrawUtils.DrawText(xUnderlay.Definition.FileName, 10, TypeConverter.ToMediaColor(xUnderlay.getColor().ToColor()), xUnderlay.Position.X, xUnderlay.Position.Y + 20, mainCanvas);
		}
示例#4
0
        public Grid mainGrid     = new Grid();   //面板 grid

        public Grid GetMainGrid(netDxf.DxfDocument dxfFile, bool avecGrille, bool avecOrigine, Color bgColor)
        {
            try
            {
                mainCanvas.Children.Clear();
                DrawEntities.RazMaxDim();
                DrawEntities.AddNewMaxDim();

                ;
                //  mainGrid = new Grid();
                mainGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
                mainGrid.VerticalAlignment   = VerticalAlignment.Stretch;


                Color m_Color = Color.FromArgb(255, (byte)128, (byte)128, (byte)128);
                mainGrid.Background = new SolidColorBrush(m_Color);


                border.Height = GridHeight;
                border.Width  = GridWidth;
                //

                border.Background          = new SolidColorBrush(m_Color); //UNdone::取消背景颜色
                border.HorizontalAlignment = HorizontalAlignment.Stretch;
                border.VerticalAlignment   = VerticalAlignment.Stretch;
                border.Scale = Scale;//增加比例


                mainCanvas.Name = "mainCanvas";
                if (DxfDoc.DrawingVariables.AcadVer < netDxf.Header.DxfVersion.AutoCad2000)
                {
                    DrawUtils.DrawText("Le format du fichier doit être dxf2000 ou supérieur.", 10, Colors.Red, 20, 50, mainCanvas);
                }
                GetCanvas(DxfDoc, mainCanvas);

                if (avecOrigine == true)
                {
                    DrawEntities.AddNewMaxDim();
                    DrawUtils.DrawOrigin(mainCanvas);
                    DrawEntities.DeleteLastMaxDim();
                }

                if (avecGrille == true)
                {
                    Canvas bgCanvas = new Canvas();
                    if (border.Child == null)
                    {
                        bgCanvas = CreateBgCanvas();
                        bgCanvas.Children.Add(mainCanvas);

                        border.Child = bgCanvas;
                    }
                }
                else
                {
                    border.Child = mainCanvas;
                }

                Canvas.SetTop(mainCanvas, GridHeight / 2);
                Canvas.SetLeft(mainCanvas, GridWidth / 2);

                //  Canvas.SetTop(mainCanvas, 0);
                //  Canvas.SetLeft(mainCanvas, 0);

                //border.Reset(GridHeight,GridWidth,true,ViewHeight,ViewWidth,WinHeight,WinWidth);



                if (mainGrid.Children.Count == 0)
                {
                    //bool res = mainGrid.Children.Contains(border);
                    // if(res==false)
                    mainGrid.Children.Add(border);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


            return(mainGrid);
        }