Я разрабатываю приложение WinForms и не могу понять, как решить проблему.
Мне нужно показать изображение в форме. Поскольку изображение может быть произвольно большим, мне нужны полосы прокрутки в графическом окне, содержащем изображение, чтобы пользователь мог видеть его полностью.
Поглядывая в глаза, я обнаружил, что лучший способ добиться этого - добавить PictureBox в качестве дочернего элемента управления панели, а также сделать панель автоматически изменяемой и автоматически прокручиваемой.
Я сделал это программно, поскольку, используя конструктор, я не смог вставить изображение в качестве дочернего элемента управления панели.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу отцентрировать и прокрутить в окне изображения одновременно.
Если я поставлю привязку в окне рисунка сверху, слева, снизу и справа, полосы прокрутки не будут отображаться, а отображаемое изображение будет странным, если я верну привязку только в верхний левый угол, изображение не будет отцентрировано.
Есть ли способ сделать оба одновременно?
Вот код для моей панели и Picturebox:
this.panelCapturedImage = new System.Windows.Forms.Panel();
this.panelCapturedImage.SuspendLayout();
this.panelCapturedImage.AutoScroll = true;
this.panelCapturedImage.AutoSize = true;
this.panelCapturedImage.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.panelCapturedImage.Controls.Add(this.pictureBoxCapturedImage);
this.panelCapturedImage.Location = new System.Drawing.Point(0, 49);
this.panelCapturedImage.Name = "panelCapturedImage";
this.panelCapturedImage.Size = new System.Drawing.Size(3, 3);
this.panelCapturedImage.TabIndex = 4;
this.pictureBoxCapturedImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBoxCapturedImage.Location = new System.Drawing.Point(0, 0);
this.pictureBoxCapturedImage.Name = "pictureBoxCapturedImage";
this.pictureBoxCapturedImage.Size = new System.Drawing.Size(0, 0);
this.pictureBoxCapturedImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBoxCapturedImage.TabIndex = 0;
this.pictureBoxCapturedImage.TabStop = false;
this.panelCapturedImage.Controls.Add(this.pictureBoxCapturedImage);
И вот где я установил изображение:
public Image CapturedImage
{
set
{
pictureBoxCapturedImage.Image = value;
pictureBoxCapturedImage.Size = value.Size;
}
}