vb.net 2010의 메뉴 항목의 왼쪽 여백에 숫자를 넣고 싶습니다만 이미지에만 설정할 수있는 것 같습니다. 그래서, 난 거기에 원하는 번호로 이미지를 만들려고 노력했습니다. Graphics.DrawString()
. 다양한 방법을 시도했지만 결과 이미지를 메뉴 항목 자체의 텍스트처럼 보이게 할 수는 없습니다.이 방법이 있습니까? 여기에 현재 코드가 있습니다. 텍스트를 측정하기 위해 이미지를 할당 한 다음 올바른 크기로 다시 할당하는 것은 버전 3에 관한 것입니다. 꽤 못 생겼지 만 측정 방법을 모르겠습니다. 여기 vb.net에서 메뉴 항목과 일치하는 텍스트 그리기
mnuItem = New ToolStripMenuItem
numPeople = CInt(Math.Ceiling(Rnd() * 20))
' Calculate the size of the text
qImg = New Bitmap(1, 1)
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
gr = Graphics.FromImage(qImg)
gr.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
sz = gr.MeasureString(numPeople, mnuItem.Font, New Point(0, 0), sf)
w = CInt(Math.Ceiling(sz.Width))
h = CInt(Math.Ceiling(sz.Height))
m = Math.Max(w, h)
' Now allocate an image of the correct size
qImg = New Bitmap(m, m)
gr = Graphics.FromImage(qImg)
gr.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
gr.DrawString(numPeople, mnuItem.Font, Brushes.Black, New RectangleF((m - w)/2, (m - h)/2, w, h), sf)
mnuItem.Image = qImg
이주는 무엇의 몇 가지 예입니다 - 메뉴 항목 텍스트를 비교하는 방법을 퍼지 여백 텍스트 (이미지)주의 : 나는 시도했다
모든 TextRenderingHint
옵션을 사용하고 일부는 다른 것보다 낫지 만 메뉴 텍스트를 선명하게 보여주는 것도 없습니다. 그 모양에 더 가까워 질 수있는 방법이 있습니까?
당신이하여 drawString을 위해 다른 브러쉬 나 폰트를 시도하십시오 ("다른 이름으로 저장"항목) 내 시스템에 다음과 같이 나타납니다()? – TimG
'DrawString'의 브러쉬 선택은 색상을 변경하는 것으로 제한됩니다. 글꼴에 관해서는 메뉴 텍스트와 일치 시키려면 메뉴의 글꼴을 사용하는 것이 가장 좋은 방법이라고 생각합니다. 그렇지 않은 경우입니까? – dsl101
System.Drawing.Brush 클래스의 모든 기능을 시도하지 않았습니다. Brushes와 같을 것입니다 .Black은 Brush 또는 SolidBrush와 같지만 결코 알 수 없습니다. TextRenderer로 승자를 얻은 것 같습니다. 명성. – TimG