Я создаю простую программу просмотра изображений с возможностью некоторой базовой обработки изображений.В настоящее время у меня есть проблема с постоянным центрированием PictureBox
внутри TabPage
, а также с сохранением ширины и размера Picturebox в соответствии с изображением, которое он показывает.До сих пор у меня не было успеха.
У меня есть следующий код, который я вызываю в конструкторе формы, чтобы расположить его в центре.он работает в первый раз для центрирования Picturebox:
private void SetPictureBoxOriginalSizeAndLocation(bool makeImageNull = false, DockStyle dockStyle = DockStyle.None)
{
if (makeImageNull) picBoxView.Image = null;
picBoxView.Dock = dockStyle;
var xPoint = tabImageView.Location.X + ((splitContainer.Panel2.Width / 2) / 2);
var yPoint = tabImageView.Location.Y;
var width = tabImageView.Width / 2;
var height = (tabImageView.Height / 2) - toolStripImageView.Height;
if (picBoxView.Image == null) return;
//Resize image according to width
picBoxView.Image = ImageMethods.ResizeImage(picBoxView.Image.Tag.ToString(), width, height, false);
picBoxView.Location = new Point(xPoint, yPoint);
picBoxView.Width = width;
picBoxView.Height = height;
}
Но он не изменяет размер Picturebox в соответствии с его изображением (вы можете видеть черную часть, которая является задним цветом для элемента управления Picturebox):

Проблема усугубляется, как только я изменяю размер формы, позиция в окне рисунка поднимается вверх:

Я звонюВыше приведен код в событии изменения размера формы, понятия не имею, почему он работает при запуске приложения.Было бы неплохо, если бы кто-нибудь сказал мне, о каких свойствах я должен позаботиться, чтобы получить красиво центрированную коробку с картинками, размер которой всегда так же велик, как ее изображение.