Есть PictureBox с нарисованной сеткой (квадраты). Известна сторона квадрата. Нужно вписать в квадрат текст (по центру). И при изменении размера квадрата изменять текст.
Пишу:
Me.pictJap.Font.Name = "Arial"
japTextHeight = Me.pictJap.TextHeight("88") ' максимум два символа
Me.pictJap.Font.Size = (CellSize * Me.pictJap.Font.Size) / japTextHeight
If Me.pictJap.Font.Size <= 8 Then ' в MSDN пишут что так надо при размере шрифта меньше 8 пт.
Me.pictJap.Font.Name = Me.pictJap.Font.Name
Me.pictJap.Font.Size = Me.pictJap.Font.Size
End If
japTextWidth = Me.pictJap.TextWidth("88")
If japTextWidth > CellSize Then
Me.pictJap.Font.Size = (CellSize * Me.pictJap.Font.Size) / japTextWidth
If Me.pictJap.Font.Size <= 8 Then
Me.pictJap.Font.Name = Me.pictJap.Font.Name
Me.pictJap.Font.Size = Me.pictJap.Font.Size
End If
End If
И теперь если написать:
Me.pictJap.CurrentX = StartX
Me.pictJap.CurrentY = StartY
Me.pictJap.Print "88"
то текст вылезает вправо за край квадрата. Хотя если написать
Me.pictJap.Line -(xr, yb)
то диагональ точно вписывается в квадрат.