2012-07-16 3 views
1

프로그래밍 방식으로 생성 된 Windows Form (C# 사용)의 컨트롤 사이의 수직 거리를 최소화하려고합니다. 여기에는 Height 속성을 적절하게 설정해야합니다..NET을 사용하여 디 센더가있는 유니 코드 문자를 검색하는 방법

컨트롤의 텍스트에 디 센더가있는 문자가 포함되어 있지 않으면 (즉, j, g, p, q 또는 y 문자가없는 경우) 컨트롤 높이가 다음보다 작을 수 있음을 발견했습니다. 그러한 문자가 포함되어있을 때 (에 문자가 포함되어있는 경우 문자 높이가 충분하지 않으면 자손이 잘립니다).

언어가 영어 또는 영어 인 경우 위의 5 문자 중 하나라도 테스트해도 문제가 없지만 모든 언어를 수용 할 수 있어야합니다.

Unicode 문자에 디 센더가 있는지 여부를 확인하기 위해 임의의 유니 코드 문자 (그리고 아마도 글꼴)가 주어진 방법이 있습니까?

+1

어떻게 ̸̤͓̞̫ͩͩ͑̋ͮͥͦ̊Z̆̊͊҉҉̠̦̩͕ą̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙ͣ̏̿͐ͯ͠t̛͓̖̻ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇x͎̬̠͇̌ͤ̓̓͐͐͋͡ţ̗̹̝̄̌ͧͩ̕͢ ̮̗̩̳̾w͎̭̤͍͇̰̄͗ͭ͗ͮ̐o̢̯̻̰̼͕̾ͣͬ̽̔̍͟r̢̪͙͍̠ǩ̵̶̗̮̮ͪ? ̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡ 엄지 손가락의 규칙에 대한 –

답변

1

디코더가 있음을 나타 내기 위해 유니 코드 문자에 대해 정의 된 속성이 없으며 실제로 문자가 아닌 글리프 디자인의 기능입니다. 예를 들어, "Q"는 많은 글꼴로 디 센더를 가지고 있고, "J"는 하나를 가지고 있습니다. 게다가 컨텍스트를 고려할 때 기본 문자의 디 센더뿐만 아니라 편지 아래에있는 발음 구별 기호도 고려해야합니다. 그리고 아마도 발음 구별 위의 글자도 있습니다.

문자 크기에 대한 글꼴 정보 (사용 가능한 경우)를 읽거나 소프트웨어에서 문자를 임시로 그려 치수를 측정해야합니다.

줄의 높이가 글꼴 크기의 1.1 배 미만인 경우 일부 문자 및 글꼴에 문제가 발생할 수 있습니다. 문자를 실제로 글꼴 크기를 벗어날 수 있으므로 1 ("솔리드 설정") 사용하여 충분하지 않습니다.

+0

감사합니다. 어떻게 든 행복한 매체에 도착하려고 노력할 것입니다. – Peter

0

Windows에서 GetPath()를 호출하여 글리프 문자열의 경계선 또는 윤곽선을 구성하는 모든 점의 X/Y 좌표를 포함하는 배열을 가져옵니다. 배열에서 min/max를 검색하면 정확히 문자열을 묶는 사각형을 얻을 수 있습니다. 글자 가장자리까지.