Rectangle str_rect = interior;\r
\r
if (tab.ImageList != null && page.ImageIndex >= 0 && page.ImageIndex < tab.ImageList.Images.Count) {\r
- int image_y = interior.Y + (interior.Height - tab.ImageList.ImageSize.Height) / 2;\r
- tab.ImageList.Draw (dc, new Point (interior.X, image_y), page.ImageIndex);\r
+ int image_x;\r
+ if (tab.SizeMode != TabSizeMode.Fixed) {\r
+ image_x = str_rect.X;\r
+ }\r
+ else {\r
+ image_x = str_rect.X + (str_rect.Width - tab.ImageList.ImageSize.Width) / 2;\r
+ if (page.Text != null) {\r
+ SizeF textSize = dc.MeasureString(page.Text, page.Font, str_rect.Size);\r
+ image_x -= (int)(textSize.Width / 2);\r
+ }\r
+ }\r
+ int image_y = str_rect.Y + (str_rect.Height - tab.ImageList.ImageSize.Height) / 2;\r
+ tab.ImageList.Draw (dc, new Point (image_x, image_y), page.ImageIndex);\r
str_rect.X += tab.ImageList.ImageSize.Width + 2;\r
str_rect.Width -= tab.ImageList.ImageSize.Width + 2;\r
}\r