Я написал небольшой кусочек кода, но он не работает, и я не уверен, почему это так, но я знаю, что картина не появляется полностью.
Вот блок кода с объяснениями: < /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
C# PictureBox не подходит ⇐ C#
Место общения программистов C#
1757172869
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>
Окончательный результат:
Пожалуйста, не устраивайте меня.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79757645/c-sharp-picturebox-doesnt-fit[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия