여러 색상의 문자열을 그리려고합니다.TextRenderer를 사용하여 문자열의 문자를 올바르게 측정하는 방법은 무엇입니까?
이렇게 기본 방법이 없으므로 TextRenderer.DrawText를 사용하여 char에 의해 char 문자를 그려야합니다. 그러나 문자열을 측정하려고하면 첫 번째 문자 너비가 올바르게보고되지 않습니다.
char로 char을 그리려면 이전 문자 너비를 측정하는 문자열을 반복하여 그릴 다음 문자의 위치를 찾으십시오.
폭을 얻으려면, 내가 사용
TextRenderer.MeasureText(word.Substring(0, i),
drawFont,
new Size(int.MaxValue, int.MaxValue),
(TextFormatFlags.Left | TextFormatFlags.NoPadding)).Width
정상적으로 작동
하지만 같은 출력을 생성 첫 번째 문자에 대한 : 하나 개의 문자가있는 경우,
L OREMIPSUM
기본적으로 - 그것은 측정 내 깃발에도 불구하고 패딩. 나는 몇 가지 해킹을하고있는 중이처럼 사용할 수있는 더 좋은 방법이 있어야 할 때
TextRenderer.MeasureText(String.Concat("*", chr.ToString(), "*"), font).Width - TextRenderer.MeasureText("**", font).Width
가 첫 번째 문자를 측정하고 올바른 폭 값을 얻을 수 있지만, 느낌 :
내가 사용할 수 있습니다.
위의 메서드에서 string을 사용하여 TextRenderer.MeasureText를 사용하지 않고도 첫 번째 문자 문제없이 올바른 결과를 얻을 수 있습니다.
내 경우에 문자를 측정하는 올바른 방법은 무엇입니까?
그래픽 인스턴스를 제공하려고 시도했지만 도움이되지 않았다고 생각했지만 다시 시도했지만 제대로 작동했습니다. 나는 더 조심해야한다, 고마워. – Murumuru