C# PictureBox не подходитC#

Место общения программистов C#
Ответить
Anonymous
 C# PictureBox не подходит

Сообщение Anonymous »

Я написал небольшой кусочек кода, но он не работает, и я не уверен, почему это так, но я знаю, что картина не появляется полностью.
Вот блок кода с объяснениями: < /p>
private void NewTab()
{
tabqueue++;

//calculating tab width from Form size
int tabWidth = (Form1.MainFormWidth / tabqueue);
Size tabSize = new Size(tabWidth, defaultTabHeight);
//panel for carrying tab picturebox and close tab picturebox
Panel tabPanel = new Panel();
this.Controls.Add(tabPanel);
foreach (System.Windows.Forms.Control panel in this.Controls)
{
if(panel is Panel)
{
panel.Size = new Size(tabWidth, defaultTabHeight);
}
}
this.Size = new Size(this.Size.Width + tabSize.Width, defaultTabHeight);
tabPanel.Location = new Point((tabqueue--) * 236, 0);

//picturebox for tab picturebox
PictureBox tabPictureBox = new PictureBox();
tabPictureBox.Size = tabSize;
RenderSVG(tab_darkblue, tabPictureBox, tabSize);
tabPictureBox.Location = zeroPoint;
tabPanel.Controls.Add(tabPictureBox);
PictureBox closeTabPictureBox = new PictureBox();
closeTabPictureBox.Size = defaultcloseTabSize;
RenderSVG(closetab, closeTabPictureBox, defaultcloseTabSize);
closeTabPictureBox.Location = new Point(210, 5);
closeTabPictureBox.Click += CloseTabPictureBox_Click;
closeTabPictureBox.Visible = false;
tabPanel.Controls.Add(closeTabPictureBox);

void CloseTabPictureBox_Click(object? sender, EventArgs e)
{
this.Controls.Remove(tabPanel);
tabqueue--;
ReArrangeTabs();
}
tabPanel.MouseEnter += TabPanel_MouseEnter;
void TabPanel_MouseEnter(object? sender, EventArgs e)
{
closeTabPictureBox.Visible = true;
}
tabPanel.MouseLeave += TabPanel_MouseLeave;
void TabPanel_MouseLeave(object? sender, EventArgs e)
{
closeTabPictureBox.Visible = false;
}
ReArrangeTabs();

}
< /code>
Чтобы объяснить, метод «rendersvg» изменяет изображение Target Picturebox на обозначенный файл SVG после того, как он преобразует его в растровый карту, используя плагин «SVG» из Nuget. Если вам интересно, вот метод: < /p>
private void RenderSVG(string svgfile, PictureBox pictureBox, Size size)
{
var svgDoc = SvgDocument.Open(svgfile);
pictureBox.Image = svgDoc.Draw(size.Width, size.Height);
}
< /code>
Окончательный результат:

Пожалуйста, не устраивайте меня.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... doesnt-fit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»