VB.net Рисование прямоугольника в центре формы

Доброе утро сообщество

Я хочу нарисовать прямоугольник точно в центре формы. Также я хочу нарисовать под этим прямоугольником текст.

С текстом я думаю, что у меня нет проблем, я использую следующий код:

Dim sf As New StringFormat
        sf.LineAlignment = StringAlignment.Center
        sf.Alignment = StringAlignment.Center

        ' Line with the problem
        e.Graphics.FillRectangle(Brushes.Beige, CInt(Local_Form.Width / 2), CInt(Local_Form.Height / 2), 200, 100)

        e.Graphics.DrawString(Local_Text, _
                              New Font(MyCloud.Settings.Settings_Forms.Font.Name, 30), _
                              Brushes.GreenYellow, _
                              Local_Form.Width / 2, Local_Form.Height / 2, sf)

введите здесь описание изображения

Но у меня проблемы с прямоугольником. Кто-нибудь может мне помочь?


person MiBol    schedule 28.09.2012    source источник


Ответы (1)


Две вещи: во-первых, вы устанавливаете левый верхний угол прямоугольника в центр, вам нужно вычесть половину своей ширины и половину своей высоты из верхней и левой позиции. Также вы должны использовать ссылку ClientRectangle, чтобы получить реальную рабочую поверхность без Chrome.

e.Graphics.FillRectangle(Brushes.Beige, CInt(Local_Form.ClientRectangle.Width / 2) - 100, CInt(Local_Form.ClientRectangle.Height / 2) - 50, 200, 100)
person Mark Hall    schedule 28.09.2012
comment
Отлично!, спасибо, Марк... работает прекрасно. У меня есть еще один вопрос, связанный с этим: я могу рассчитать ширину строки? Я хочу изменить размер прямоугольника в зависимости от строки. - person MiBol; 28.09.2012
comment
@MiBol использует e.graphics.measurestring - person Mark Hall; 28.09.2012