123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- using FastReport.Utils;
- namespace FastReport.Forms
- {
- internal partial class PictureEditorForm : BaseDialogForm
- {
- private PictureObject picture;
- private void SetImage(Image image)
- {
- pbPicture.Image = image;
- if (image != null)
- {
- if (image.Width < pbPicture.Width && image.Height < pbPicture.Height)
- pbPicture.SizeMode = PictureBoxSizeMode.CenterImage;
- else
- pbPicture.SizeMode = PictureBoxSizeMode.Zoom;
- lblSize.Text = image.Width.ToString() + " × " + image.Height.ToString();
- }
- else
- lblSize.Text = "";
- btnEdit.Enabled = btnClear.Enabled = image != null;
- }
- private void btnLoad_Click(object sender, EventArgs e)
- {
- if (Dialogs.OpenImage(out string fileName))
- {
- try
- {
- SetImage(ImageHelper.LoadFromFile(fileName));
- }
- catch (Exception ex)
- {
- FRMessageBox.Error(ex.Message);
- }
- }
- }
- private void btnPaste_Click(object sender, EventArgs e)
- {
- if (Clipboard.ContainsImage())
- SetImage(Clipboard.GetImage());
- }
- private void btnClear_Click(object sender, EventArgs e)
- {
- SetImage(null);
- }
- private void tbFileName_ButtonClick(object sender, EventArgs e)
- {
- if (Dialogs.OpenImage(out string fileName))
- {
- tbFileName.Text = fileName;
- }
- }
- private void btnEdit_Click(object sender, EventArgs e)
- {
- if (pbPicture.Image != null)
- {
- using (PictureEditorAdvancedForm f = new PictureEditorAdvancedForm(pbPicture.Image))
- {
- if (f.ShowDialog() == DialogResult.OK)
- {
- SetImage(f.Image);
- }
- }
- }
- }
- private void PictureEditorForm_FormClosed(object sender, FormClosedEventArgs e)
- {
- Done();
- }
- private void Init()
- {
- ProfessionalColorTable vs2005ColorTable = new ProfessionalColorTable();
- vs2005ColorTable.UseSystemColors = true;
- ts1.Renderer = new ToolStripProfessionalRenderer(vs2005ColorTable);
- SetImage(null);
- if (picture.IsDataColumn)
- pcPages.ActivePageIndex = 1;
- else if (picture.IsFileLocation)
- {
- pcPages.ActivePageIndex = 2;
- tbFileName.Text = picture.ImageLocation;
- }
- else if (picture.IsWebLocation)
- {
- pcPages.ActivePageIndex = 3;
- tbUrl.Text = picture.ImageLocation;
- }
- else
- {
- pcPages.ActivePageIndex = 0;
- SetImage(picture.Image);
- }
- tvData.CreateNodes(picture.Report.Dictionary);
- tvData.SelectedItem = picture.DataColumn;
- #if AVALONIA
- // enable when Avalonia will support clipboard bitmaps
- btnPaste.Enabled = false;
- #endif
- }
- private void Done()
- {
- if (DialogResult == DialogResult.OK)
- {
- picture.Image = null;
- picture.DataColumn = "";
- picture.ImageLocation = "";
- switch (pcPages.ActivePageIndex)
- {
- case 0:
- picture.Image = pbPicture.Image;
- break;
- case 1:
- picture.DataColumn = tvData.SelectedItem;
- break;
- case 2:
- picture.ImageLocation = tbFileName.Text;
- break;
- case 3:
- picture.ImageLocation = tbUrl.Text;
- break;
- }
- }
- }
- public override void Localize()
- {
- base.Localize();
- MyRes res = new MyRes("Forms,PictureEditor");
- Text = res.Get("");
- pnPicture.Text = res.Get("Picture");
- btnLoad.Text = res.Get("Load");
- btnPaste.Text = res.Get("Paste");
- btnClear.Text = res.Get("Clear");
- btnEdit.Text = res.Get("Edit");
- pnDataColumn.Text = res.Get("DataColumn");
- pnFileName.Text = res.Get("FileName");
- pnUrl.Text = res.Get("Url");
- lblFile.Text = res.Get("FileHint1");
- lblNote.Text = res.Get("FileHint2");
- lblUrl.Text = res.Get("UrlHint");
- }
- public override void UpdateDpiDependencies()
- {
- base.UpdateDpiDependencies();
- tvData.ImageList = GetImages();
- lblNote.Left = tbFileName.Left;
- lblNote.Width = tbFileName.Width;
- ts1.Size = this.LogicalToDevice(new Size(372, 25));
- ts1.Font = Font;
- tbFileName.Image = GetImage(1);
- btnLoad.Image = GetImage(1);
- btnPaste.Image = GetImage(7);
- btnClear.Image = GetImage(82);
- btnEdit.Image = GetImage(198);
- }
- public PictureEditorForm(PictureObject picture)
- {
- this.picture = picture;
- InitializeComponent();
- Localize();
- Init();
- UIUtils.CheckRTL(this);
- UpdateDpiDependencies();
- }
- }
- }
|