Рисование меню в DrawItem

  • Автор темы Oleg
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

Oleg

#1
Здравствуйте! Я хочу создать обственное меню. Для этого я включаю свойство OwnerDraw = true. Дальше в событии DrawItem рисую прямоугольник, добавляю картинку, в общем извращаюсь. Но область выделения остается маленькой и не соответствует нарисованному прямоугольнику. Ее можно увидеть вызвав e.DrawBackground(). Подкажите, что нужно сделать для того, чтобы область выделения была такого же размера как и прямоугольник. e.Bounds не для редактирования. Вот код (причем взят в оновном из MSDN):



private void menuItem1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{

e.DrawBackground();

string myCaption = ((MenuItem)sender).Text;
Brush myBrush = System.Drawing.Brushes.Blue;
Font myFont = new Font(FontFamily.GenericSerif, 14, FontStyle.Bold, GraphicsUnit.Pixel);
SizeF mySizeF = e.Graphics.MeasureString(myCaption, myFont);

e.Graphics.DrawString(myCaption, myFont, myBrush, e.Bounds.X, e.Bounds.Y);
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(e.Bounds.X, e.Bounds.Y, Convert.ToInt32(mySizeF.Width), Convert.ToInt32(mySizeF.Height)));

}



Заранее благодарен.
 
C

C-roja

#2
Добавить:

private void menuItem1_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
{
e.ItemWidth = myWidth;
e.ItemHeight = myHeight;

}
 
Статус
Закрыто для дальнейших ответов.