private void Print_Badge(object sender, RoutedEventArgs e) { PrintPreviewDialog pdi = new PrintPreviewDialog(); //Position de la fenêtre de preview //pdi.DesktopLocation = new System.Drawing.Point(0, 0); //var locatrion = pdi.Lo pdi.Name = "PrintPreviewDialog1"; BadgeEventSet defaultBadge = this._badgeVM.GetDefaultBadge(); pdi.ClientSize = new System.Drawing.Size((int)defaultBadge.BadgeSet.Dimension_X, (int)defaultBadge.BadgeSet.Dimension_Y); if (defaultBadge == null) { System.Windows.MessageBox.Show("Please configure a default print in badge settings"); return; } PrintDocument printDocument = new PrintDocument(); printDocument.DefaultPageSettings.PaperSize = new PaperSize("Template", Convert.ToInt32(defaultBadge.BadgeSet.Dimension_X * MM_PX), Convert.ToInt32(defaultBadge.BadgeSet.Dimension_Y * MM_PX)); printDocument.OriginAtMargins = true; printDocument.PrintPage += (sender2, e2) => document_PrintPage(sender2, e2, defaultBadge); RectangleF rec = printDocument.PrinterSettings.DefaultPageSettings.PrintableArea; float rightY = rec.Right; pdi.Document = printDocument; pdi.Document.BeginPrint += new PrintEventHandler(end_print); //pdi.PrintPreviewControl.Zoom = 1; Margins margins = new Margins(10, 10, 10, 10); printDocument.DefaultPageSettings.Margins = margins; pdi.ShowDialog(); if (isPrinted) { this._badgeVM.SaveOnPrintBadge(this._currentUser[0].UserID_User); } }