나는 현재 이미지를 ASCII 아트로 변환하는 Paint.net
용 플러그인을 만들고 있습니다. 나는 잘 작동 변환이 있고, 고정 너비 글꼴로 TextBox
컨트롤로 ASCII 아트를 출력합니다. 내 문제는 TextBox의 줄 간격 때문에 ASCII 아트가 세로로 늘어져 있다는 것입니다. TextBox
의 줄 간격을 설정할 수있는 방법이 있습니까?C# TextBox 줄 간격
2
A
답변
3
TextBox는 서식 옵션이없는 단일 또는 다중 행 텍스트를 단순히 표시합니다. 글꼴은 가질 수 있지만 텍스트가 아니라 TextBox에만 적용되므로 줄 간격과 같은 단락 설정은 내가 아는 한 가질 수 없습니다 .
첫 번째 제안은 RichTextBox를 사용하는 것이지만 다시 RTF에는 행 간격 코드가 없으므로 불가능할 수도 있습니다.
그래서 마지막으로 소유자가 만든 컨트롤을 사용하는 것이 좋습니다. 너비가 고정 너비 글꼴로 너무 어려워서는 안됩니다. 각 문자의 위치는 (x*w, y*h)
입니다. 여기서 x
및 y
은 문자 색인이고 w
및 h
은 한 문자의 크기입니다.
편집 : 조금 더 생각하면 더 간단합니다. 단순히 문자열을 줄로 구분하고 각 줄을 그립니다.
다음은 간단한 제어입니다. 테스트했을 때 의 경우 Spacing
의 가장 좋은 값은 입니다.
/// <summary>
/// Displays text allowing you to control the line spacing
/// </summary>
public class SpacedLabel : Control {
private string[] parts;
protected override void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
g.Clear(BackColor);
float lineHeight = g.MeasureString("X", Font).Height;
lineHeight += Spacing;
using (Brush brush = new SolidBrush(ForeColor)) {
for (int i = 0; i < parts.Length; i++) {
g.DrawString(parts[i], Font, brush, 0, i * lineHeight);
}
}
}
public override string Text {
get {
return base.Text;
}
set {
base.Text = value;
parts = (value ?? "").Replace("\r", "").Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
}
}
/// <summary>
/// Controls the change in spacing between lines.
/// </summary>
public float Spacing { get; set; }
}
관련 문제
- 1. 여러 줄 TextBox 텍스트 맞춤 (C# 2.0)
- 2. CoreText : 줄 간격
- 3. JTextArea의 줄 간격
- 4. LaTeX에서 줄 간격 조작
- 5. 리눅스 터미널의 두 줄 간격 줄
- 6. 이미지가있는 RichTextBox - 줄 간격 문제
- 7. VS 2005 줄 간격 설정
- 8. 텍스트 줄 사이의 간격 제거
- 9. winform RichTextBox에서 줄 간격 바꾸기
- 10. XML : 요소 사이의 가로 간격 및 줄 간격
- 11. 사용자 지정 줄 바꿈이 포함 된 여러 줄 TextBox
- 12. TextBox (JavaFX 2.0)의 새 줄
- 13. 온도 TextBox C#
- 14. C# - Intellisense textbox
- 15. TextBox 유효성 검사 - C#
- 16. C#, textbox, .NET
- 17. TextBox 업데이트 C#
- 18. iPhone - CGContextSetCharacterSpacing과 유사한 줄 간격 지정 방법
- 19. \ LaTeX {}에 줄 간격 문제가 있습니다.
- 20. C# 2.0 Compact Framework TextBox
- 21. TextBox 이벤트 작은 문제 - C#
- 22. C# WPF 리본 : RibbonTextBox와 TextBox
- 23. comboBoxValue To TextBox C# WINFORMS
- 24. C# 3.5 textbox 유효성 검사
- 25. C++ :보다 정확한 타이밍 간격
- 26. 캔버스에서 그리기 사이의 간격 설정 (C#)
- 27. 문화적으로 중립적 인 방식으로 Word 2007의 줄 간격 설정
- 28. C# multiline textbox 메모리 사용 문제
- 29. 스크롤 이벤트 "도용"에서 여러 줄 TextBox 방지
- 30. bin-release와 다른 플렉스 bin-debug 줄 간격
아마도하여 RichTextBox를 사용하여 행 높이 설정 : http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/8781caf6-5759-4fee-8c08-cd8a2d85fc9f를? –