2015-04-21 2 views
1

Я загружаю и изображение на картинку и рисую som text. , когда я перетаскиваю текст, он выглядит большим, но затем, когда я его запираю или запираю, он становится слишком маленьким. для параметра sizemode окна изображения установлено значение Масштаб. поэтому огромные изображения сделаны маленькими. как я могу установить правильную fontsize и предварительный просмотр в то время как в picturebox?Размер шрифта слишком мал, когда drawstring называется

Sub btnLock отвечает за «фиксирующей» Текст к изображению и подразделам Picturebox1_Paint предпросмотра

как я могу сделать предварительный просмотр уменьшать размер шрифта или сделать btnLock scaleup FONTSIZE

Dim Loc As Point 
    Dim Pxy As Point 

    Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove 
     txtButton.Text = MouseButtons.Left 
     If e.Button = MouseButtons.Left Then 
      Loc = e.Location 
      Me.PictureBox1.Invalidate() 
     End If 
    End Sub 

    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint 
     Dim myFontSize As Integer 
     Integer.TryParse(ComboBox1.Text, myFontSize) 
     Dim myFont As New Font("Arial", myFontSize, FontStyle.Bold Or FontStyle.Italic) 
     Dim pt As Point = PictureBox1.PointToClient(Control.MousePosition) 
     e.Graphics.DrawString(txtA.Text, myFont, Brushes.Black, pt.X, pt.Y) 
    End Sub 

    Private Sub btnLock_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLock.Click 
     Dim myFontSize As Integer 
     Integer.TryParse(ComboBox1.Text, myFontSize) 
     Dim myFont As New Font("Arial", myFontSize, FontStyle.Bold Or FontStyle.Italic) 
     Dim g As Graphics = Graphics.FromImage(Me.PictureBox1.Image) 
     ' g.DrawString(txtA.Text, myFont, Brushes.Black, Loc.X, Loc.Y) 
     g.DrawString(txtA.Text, myFont, Brushes.Black, Pxy.X, Pxy.Y) 
     ' Me.PictureBox1.Invalidate() 
    End Sub 

Благодарим Вас за help! -DB35M

+0

Почему вы не определить значение для ** myFontSize ** целое? – MacKentoch

+0

@MacKentoch Я использую Combobox1 для изменения шрифта. Размер – db35m

+0

Хорошо, я бы отлаживал и добавлял контрольные точки, чтобы проверить, что происходит. Полагаю, вы уже это сделали. – MacKentoch

ответ

0

Я думаю, что вы получаете это поведение, поскольку два объекта Graphics имеют разные размеры. Вы возражаете g получает свои границы от источник изображение вашего фотобарабана (без масштабирования) и ваш графический объект во время PictureBox1 получает его границы из окна изображения контейнер. Это означает, что они будут разных размеров, и поэтому myFontSize будет выглядеть так, как будто он имеет разные размеры.

Попытка «уменьшить масштаб» размера шрифта в соответствии с уменьшением масштаба изображения будет очень трудно выполнить. Вместо этого, решить эту проблему, изменив SizeMode на Normal и изменение размеров контейнера, чтобы поместить изображение:

PictureBox1.SizeMode = PictureBoxSizeMode.Normal 
Смежные вопросы