У меня есть левоориентированный элемент управления вкладками в форме, над которой я работаю. Моя цель - сделать так, чтобы индикатором выбранной вкладки было то, что заголовок вкладки подчеркивался, но не менял цвет или что-то в этом роде. На изображении ниже вы можете увидеть рамку, расположенную на выбранной вкладке и предназначенную для того, чтобы вкладка выглядела приподнятой. Я не могу понять, как удалить эту функцию из элемента управления вкладками. Посоветуйте, пожалуйста.
Вкладки с рамкой
Приведенный ниже код показывает, как я ориентирую текст и управляю цветом. Я попытался увеличить размер прямоугольника для каждой вкладки, но оказалось, что рисуемый прямоугольник находится под границей, поэтому я не могу его закрыть.
`private void FFTSettingsTabControl_DrawItem(object sender, DrawItemEventArgs e)
{
//Get the working area of the TabControl main control
Rectangle rec = FFTSettingsTabControl.ClientRectangle;
//Create a StringFormat object to set the layout of the label text
StringFormat StrFormat = new StringFormat();
StrFormat.LineAlignment = StringAlignment.Center;// Set the text to be centered vertically
StrFormat.Alignment = StringAlignment.Near;// Set the text to be centered horizontally
// The background fill color of the label, it can also be a picture (e.Graphics.DrawImage)
SolidBrush backColor = new SolidBrush(Color.FromArgb(255, (byte)20, (byte)20, (byte)20));
Pen p = new Pen(backColor);
SolidBrush fontColor;// Label font color
//Draw the background of the main control
e.Graphics.FillRectangle(backColor, rec);
e.Graphics.DrawRectangle(p, rec);
//Draw label style
Font fntTab = e.Font;
Font fntSel = new Font(e.Font, FontStyle.Underline);
Brush bshBack = new SolidBrush(Color.FromArgb(255, (byte)20, (byte)20, (byte)20));
for (int i = 0; i < FFTSettingsTabControl.TabPages.Count; i++)
{
bool bSelected = (FFTSettingsTabControl.SelectedIndex == i);
Rectangle recBounds = FFTSettingsTabControl.GetTabRect(i);
RectangleF tabTextArea = (RectangleF)FFTSettingsTabControl.GetTabRect(i);
if (bSelected)
{
e.Graphics.FillRectangle(bshBack, recBounds);
fontColor = new SolidBrush(Color.White);
e.Graphics.DrawString(FFTSettingsTabControl.TabPages.Text, fntSel, fontColor, tabTextArea, StrFormat);
}
else
{
fontColor = new SolidBrush(Color.White);
e.Graphics.DrawString(FFTSettingsTabControl.TabPages.Text, fntTab, fontColor, tabTextArea, StrFormat);
}
}
}`
Подробнее здесь: https://stackoverflow.com/questions/791 ... lected-tab
Windows Forms удаляет рельефную рамку с выбранной вкладки ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Белая линия появляется под заголовком выбранной вкладки в библиотеке реагирующих вкладок
Anonymous » » в форуме CSS - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-