private void DataGridViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "FontPreview" || e.PropertyName == "AddingColumnName" || e.PropertyName == "RemovingColumnName") { return; } LabelPrinterLayer labelPrinterLayer = GetLabelPrinterLayer(); using (Bitmap bitmap = new Bitmap(311, 60)) { PlatformGeoCanvas canvas = new PlatformGeoCanvas(); canvas.BeginDrawing(bitmap, new RectangleShape(-180, 90, 180, -90), GeographyUnit.Meter); labelPrinterLayer.SafeProcess(() => { labelPrinterLayer.Draw(canvas, new System.Collections.ObjectModel.Collection <SimpleCandidate>()); }); canvas.EndDrawing(); MemoryStream ms = new MemoryStream(); bitmap.Save(ms, ImageFormat.Png); BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = ms; bitmapImage.EndInit(); FontPreview = bitmapImage; } }
private void TextElementEntity_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (withPreview && e.PropertyName != "Preview" && !string.IsNullOrEmpty(text.Trim())) { LabelPrinterLayer labelPrinterLayer = new LabelPrinterLayer(); labelPrinterLayer.LoadFromViewModel(this); using (Bitmap bitmap = new Bitmap(250, 100)) { PlatformGeoCanvas canvas = new PlatformGeoCanvas(); canvas.BeginDrawing(bitmap, new RectangleShape(-180, 90, 180, -90), GeographyUnit.Meter); labelPrinterLayer.SafeProcess(() => { labelPrinterLayer.Draw(canvas, new Collection <SimpleCandidate>()); }); //labelPrinterLayer.Open(); //labelPrinterLayer.Draw(canvas, new System.Collections.ObjectModel.Collection<SimpleCandidate>()); //labelPrinterLayer.Close(); canvas.EndDrawing(); MemoryStream ms = new MemoryStream(); bitmap.Save(ms, ImageFormat.Png); BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = ms; bitmapImage.EndInit(); preview = bitmapImage; RaisePropertyChanged(() => Preview); } } }
public static void LoadFromViewModel(this LabelPrinterLayer labelPrinterLayer, TextElementViewModel textElementViewModel) { DrawingFontStyles drawingFontStyles = DrawingFontStyles.Regular; if (textElementViewModel.IsBold) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Bold; } if (textElementViewModel.IsItalic) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Italic; } if (textElementViewModel.IsStrikeout) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Strikeout; } if (textElementViewModel.IsUnderline) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Underline; } GeoFont font = new GeoFont(textElementViewModel.FontName.Source, textElementViewModel.FontSize, drawingFontStyles); labelPrinterLayer.PrinterWrapMode = textElementViewModel.WrapText ? PrinterWrapMode.WrapText : PrinterWrapMode.AutoSizeText; labelPrinterLayer.Text = textElementViewModel.Text; labelPrinterLayer.Font = font; labelPrinterLayer.TextBrush = textElementViewModel.FontColor; labelPrinterLayer.DragMode = textElementViewModel.DragMode; labelPrinterLayer.ResizeMode = textElementViewModel.ResizeMode; }
private LabelPrinterLayer GetLabelPrinterLayer() { DrawingFontStyles drawingFontStyles = DrawingFontStyles.Regular; if (IsBold) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Bold; } if (IsItalic) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Italic; } if (IsStrikeout) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Strikeout; } if (IsUnderline) { drawingFontStyles = drawingFontStyles | DrawingFontStyles.Underline; } GeoFont font = new GeoFont(FontName.Source, FontSize, drawingFontStyles); LabelPrinterLayer labelPrinterLayer = new LabelPrinterLayer("Abc", font, FontColor); return(labelPrinterLayer); }
private void toolBoxItem_Click(object sender, RoutedEventArgs e) { PrinterInteractiveOverlay printerInteractiveOverlay = (PrinterInteractiveOverlay)Map1.InteractiveOverlays["PrintPreviewOverlay"]; PrinterLayer printerLayer = null; if (sender == btnAddLabel) { printerLayer = new LabelPrinterLayer(); printerLayer.SetPosition(2, 1, 0, 0, PrintingUnit.Inch); } else if (sender == btnAddImage) { printerLayer = new ImagePrinterLayer(); } else if (sender == btnAddScaleLine) { MessageBox.Show("NotImplemented"); } else if (sender == btnAddScaleBar) { MessageBox.Show("NotImplemented"); } else if (sender == btnAddDataGrid) { printerLayer = new DataGridPrinterLayer(); printerLayer.SetPosition(1, 1, 0, 0, PrintingUnit.Inch); } //if (ShowPrinterLayerProperties(printerLayer) == DialogResult.OK) if (ShowPrinterLayerProperties(printerLayer) == true) { printerInteractiveOverlay.PrinterLayers.Add(printerLayer); Map1.Refresh(); } }
protected override void LoadFromActiveMapCore(PrinterLayer printerLayer) { LabelPrinterLayer labelPrinterLayer = null; if (titleAdornmentLayer != null && (labelPrinterLayer = printerLayer as LabelPrinterLayer) != null) { labelPrinterLayer.Text = titleAdornmentLayer.Title; labelPrinterLayer.TextBrush = titleAdornmentLayer.FontColor; labelPrinterLayer.Font = titleAdornmentLayer.TitleFont; } }
public static LabelPrinterLayer GetLabelPrinterLayer(string text, double width, double height, double centerX, double centerY) { LabelPrinterLayer labelPrinterLayer = new LabelPrinterLayer { DrawingExceptionMode = DrawingExceptionMode.DrawException }; labelPrinterLayer.LoadFromViewModel(new TextElementViewModel(false) { Text = text, FontSize = 34 }); labelPrinterLayer.Open(); labelPrinterLayer.SetPosition(width, height, centerX, centerY, PrintingUnit.Inch); return(labelPrinterLayer); }
private void AddCenteredMapTitles() { RectangleShape pageBoundingbox = GetPageBoundingBox(PrintingUnit.Inch); //For the main title LabelPrinterLayer titleLabelPrinterLayer = new LabelPrinterLayer(); //Setup the text and the font.. titleLabelPrinterLayer.Text = "Tarrant County Parcels"; titleLabelPrinterLayer.Font = new GeoFont("Verdana", 8); titleLabelPrinterLayer.TextBrush = new GeoSolidBrush(GeoColors.Black); // Set the title position so that is it centered on the page. PointShape titleCenterPointShape = new PointShape(); titleCenterPointShape.X = pageBoundingbox.UpperRightPoint.X - pageBoundingbox.Width / 2; titleCenterPointShape.Y = pageBoundingbox.UpperLeftPoint.Y - 0.3; titleLabelPrinterLayer.PrinterWrapMode = PrinterWrapMode.AutoSizeText; titleLabelPrinterLayer.SetPosition(3, 0.5, titleCenterPointShape, PrintingUnit.Inch); //For the subtitle LabelPrinterLayer subTitleLabelPrinterLayer = new LabelPrinterLayer(); //Setup the text and the font.. subTitleLabelPrinterLayer.Text = "Affected Parcels By New Proposal"; subTitleLabelPrinterLayer.Font = new GeoFont("Arial", 2, DrawingFontStyles.Bold); subTitleLabelPrinterLayer.TextBrush = new GeoSolidBrush(GeoColors.Black); // Set the sub title position so that is it centered on the page below the title. PointShape subtitleCenterPointShape = new PointShape(); subtitleCenterPointShape.X = pageBoundingbox.UpperRightPoint.X - pageBoundingbox.Width / 2; subtitleCenterPointShape.Y = pageBoundingbox.UpperLeftPoint.Y - 0.6; subTitleLabelPrinterLayer.PrinterWrapMode = PrinterWrapMode.AutoSizeText; subTitleLabelPrinterLayer.SetPosition(3, 0.3, subtitleCenterPointShape, PrintingUnit.Inch); // Find the PrinterInteractiveOverlay so we can add the new LabelPrinterLayer PrinterInteractiveOverlay printerInteractiveOverlay = (PrinterInteractiveOverlay)mapView.InteractiveOverlays["PrintPreviewOverlay"]; printerInteractiveOverlay.PrinterLayers.Add("titleLabelPrinterLayer", titleLabelPrinterLayer); printerInteractiveOverlay.PrinterLayers.Add("subtitleLabelPrinterLayer", subTitleLabelPrinterLayer); }
internal void SetProperties(PrinterLayer printerLayer) { LabelPrinterLayer labelPrinterLayer = printerLayer as LabelPrinterLayer; if (labelPrinterLayer != null) { textViewModel.WrapText = labelPrinterLayer.PrinterWrapMode == PrinterWrapMode.WrapText; textViewModel.Text = labelPrinterLayer.Text; textViewModel.FontName = new FontFamily(labelPrinterLayer.Font.FontName); textViewModel.FontSize = labelPrinterLayer.Font.Size; textViewModel.IsBold = (labelPrinterLayer.Font.Style & DrawingFontStyles.Bold) == DrawingFontStyles.Bold; textViewModel.IsItalic = (labelPrinterLayer.Font.Style & DrawingFontStyles.Italic) == DrawingFontStyles.Italic; textViewModel.IsStrikeout = (labelPrinterLayer.Font.Style & DrawingFontStyles.Strikeout) == DrawingFontStyles.Strikeout; textViewModel.IsUnderline = (labelPrinterLayer.Font.Style & DrawingFontStyles.Underline) == DrawingFontStyles.Underline; textViewModel.FontColor = labelPrinterLayer.TextBrush; textViewModel.DragMode = labelPrinterLayer.DragMode; textViewModel.ResizeMode = labelPrinterLayer.ResizeMode; } }
private void AddGridTitle2() { //Set the grid tile for approved parcels on top of the right grid. RectangleShape pageBoundingbox = GetPageBoundingBox(PrintingUnit.Inch); //For the grid title LabelPrinterLayer gridTitleLabelPrinterLayer = new LabelPrinterLayer(); //Setup the text and the font.. gridTitleLabelPrinterLayer.Text = "Parcels In Discussion"; gridTitleLabelPrinterLayer.Font = new GeoFont("Arial", 8, DrawingFontStyles.Bold); gridTitleLabelPrinterLayer.TextBrush = new GeoSolidBrush(GeoColors.Black); // Set the title position so that is it centered on the page one inch from the top and to the right gridTitleLabelPrinterLayer.PrinterWrapMode = PrinterWrapMode.AutoSizeText; gridTitleLabelPrinterLayer.SetPosition(3, 0.5, new PointShape(2.25, pageBoundingbox.GetCenterPoint().Y - 2.9), PrintingUnit.Inch); // Find the PrinterInteractiveOverlay so we can add the new LabelPrinterLayer PrinterInteractiveOverlay printerInteractiveOverlay = (PrinterInteractiveOverlay)mapView.InteractiveOverlays["PrintPreviewOverlay"]; printerInteractiveOverlay.PrinterLayers.Add("gridtitle2LabelPrinterLayer", gridTitleLabelPrinterLayer); }
protected override PrinterLayer GetPrinterLayerFromActiveMapCore(RectangleShape boudingBox) { if (this.titleAdornmentLayer != null) { LabelPrinterLayer printerLayer = new LabelPrinterLayer(); LoadFromActiveMap(printerLayer); var newScreenBBox = new PlatformGeoCanvas().MeasureText(printerLayer.Text, printerLayer.Font); var scaledWidth = newScreenBBox.Width * 1.1; var scaledHeight = newScreenBBox.Height * 1.1; double width = PrinterHelper.ConvertLength(scaledWidth, PrintingUnit.Point, PrintingUnit.Inch); double height = PrinterHelper.ConvertLength(scaledHeight, PrintingUnit.Point, PrintingUnit.Inch); double left = PrinterHelper.ConvertLength(titleAdornmentLayer.XOffsetInPixel, PrintingUnit.Point, PrintingUnit.Inch); double top = PrinterHelper.ConvertLength(titleAdornmentLayer.YOffsetInPixel, PrintingUnit.Point, PrintingUnit.Inch); SetPosition(titleAdornmentLayer.Location, boudingBox, printerLayer, width, height, left, top); return(printerLayer); } else { return(null); } }
private void AddCenteredTitleLabel() { LabelPrinterLayer labelPrinterLayer = new LabelPrinterLayer(); //Setup the text and the font.. labelPrinterLayer.Text = "Population > 70 Million"; labelPrinterLayer.Font = new GeoFont("Arial", 10, DrawingFontStyles.Bold); labelPrinterLayer.TextBrush = new GeoSolidBrush(GeoColors.Black); // Set the labels position so that is it centered on the page one inch from the top RectangleShape pageBoundingbox = GetPageBoundingBox(PrintingUnit.Inch); PointShape labelCenter = new PointShape(); labelCenter.X = pageBoundingbox.UpperRightPoint.X - pageBoundingbox.Width / 2; labelCenter.Y = pageBoundingbox.UpperLeftPoint.Y - .5; labelPrinterLayer.PrinterWrapMode = PrinterWrapMode.AutoSizeText; labelPrinterLayer.SetPosition(5, 1, labelCenter, PrintingUnit.Inch); // Find the PrinterInteractiveOverlay so we can add the new LabelPrinterLayer PrinterInteractiveOverlay printerInteractiveOverlay = (PrinterInteractiveOverlay)Map1.InteractiveOverlays["PrintPreviewOverlay"]; printerInteractiveOverlay.PrinterLayers.Add("LabelLayer", labelPrinterLayer); }
public LabelPrinterLayerProperty(LabelPrinterLayer labelPrinterLayer) { InitializeComponent(); this.labelPrinterLayer = labelPrinterLayer; }
public SignatureViewModel(string name, LabelPrinterLayer signaturePrinterLayer) { this.name = name; this.signaturePrinterLayer = signaturePrinterLayer; }