Нет, в смысле - да, без автоматического растягивания. Контрол заведомо больше панельки, а должен стать ещё больше после загрузки картинки.
Новые данные (занимаюсь этим в свободное от работы время, поэтому медленно) я сделал отображение окружностей на этом вложенном контроле:
for (int i = 0; i < 5; i++)
{
gr.DrawEllipse(new Pen(_brush),
i * this.ClientSize.Width / 10,
i * this.ClientSize.Height / 10,
this.ClientSize.Width - 2 * this.ClientSize.Width / 10 * i,
this.ClientSize.Height - 2 * this.ClientSize.Height / 10 * i);
}
Так они говорят мне, что ClientSize нифига не поменялся после загрузки картинки. Те его размеры остались ткими же как в дизайнере. Те я так понимаю, что размеры моего контрола не изменяются в принципе.
Делаю я это так (уже попробовал и клиенскую область устанавливать) может тут косяк?
public MapperBackGround()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw, true);
InitializeComponent();
try
{
_image = Image.FromFile("d:\\bkImage.jpg");
this.Width = _image.Width;
this.Height = _image.Height;
this.ClientSize = new Size(_image.Width,_image.Height);
Debug.WriteLine("New size: w=" + this.Width + "; h=" + this.Height);
}
catch (Exception ex)
{
Debug.WriteLine("Open bkImage error: " + ex.Message);
_image = null;
}
}
зы Сообщение Debug.WriteLine("New size: w=" + this.Width + "; h=" + this.Height); показывает мне правильные размеры равные размеру картинки, которая примерно в три раза больше размеров контрола в дизайнере. Может это не в конструкторе надо делать?