Exemplo n.º 1
0
 private void ExportButton_Click(object sender, RoutedEventArgs e)
 {
     if (TreeTop.Figures.Count != 0)
     {
         SaveFileDialog sfd = new SaveFileDialog
         {
             Title           = "Сохранить как",
             OverwritePrompt = true,
             CheckPathExists = true,
             Filter          = "Files(*.png)|*.png"
         };
         sfd.ShowDialog();
         if (sfd.FileName != "")
         {
             MyCanvas.Measure(new Size((int)MyCanvas.Width, (int)MyCanvas.Height));
             MyCanvas.Arrange(new Rect(new Size((int)MyCanvas.Width, (int)MyCanvas.Height)));
             var rtb = new RenderTargetBitmap((int)MyCanvas.Width, (int)MyCanvas.Height, 96d, 96d, PixelFormats.Pbgra32);
             rtb.Render(MyCanvas);
             PngBitmapEncoder png = new PngBitmapEncoder();
             png.Frames.Add(BitmapFrame.Create(rtb));
             FileStream file = (FileStream)sfd.OpenFile();
             png.Save(file);
             file.Close();
         }
     }
     else
     {
         System.Windows.MessageBox.Show("Нарисуйте что-нибудь...");
     }
 }
Exemplo n.º 2
0
        private void Print_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == true)
            {
                // Скрыть Grid
                grid.Visibility = Visibility.Hidden;
                MContext    mc  = new MContext();
                Subcategory sub = mc.Subcategories.First(x => x.ID == s.ID_Subcategory);
                PriceFormat pf  = mc.PriceFormat.First(x => x.ID == sub.ID_PriceFormat);
                // Увеличить размер в 5 раз
                MyCanvas.LayoutTransform = new ScaleTransform(pf.TransX, pf.TransY);
                // Определить поля
                int pageMargin = pf.Margin;

                // Получить размер страницы
                System.Windows.Size pageSize = new System.Windows.Size(pf.X, pf.Y);
                // Инициировать установку размера элемента
                MyCanvas.Measure(pageSize);
                MyCanvas.Arrange(new Rect(pageMargin, pageMargin, pageSize.Width, pageSize.Height));

                // Напечатать элемент
                printDialog.PrintVisual(MyCanvas, "Распечатываем элемент Canvas");

                // Удалить трансформацию и снова сделать элемент видимым
                MyCanvas.LayoutTransform = null;
                grid.Visibility          = Visibility.Visible;
                if (s.TotalPrice != 0)
                {
                    SKU stmp = mc.SKUs.First(x => x.ID == s.ID);
                    stmp.Price       = s.TotalPrice;
                    stmp.TotalPrice  = 0;
                    stmp.Promo       = s.TotalPromo;
                    stmp.ChangePrice = false;
                    mc.SaveChanges();
                }
            }
            this.Close();
        }