2009-10-13 43 views
5

Tôi đang hiển thị một số chuỗi theo cách thủ công trên đầu trang của một GraphicsBox, vì bạn không thể có Nhãn có phông nền trong suốt.Tại sao các chuỗi Windows Forms của tôi trông rất xấu xí khi chống răng cưa?

Không có vấn đề mà chế độ tôi cố gắng mặc dù render, tôi không thể có được chuỗi để tìm bất kỳ tốt (ví dụ. Khi chúng xuất hiện trong Word hoặc trong một chương trình đồ họa.

Dưới đây là một hình ảnh của các mockup giao diện so với những gì làm cho trên màn hình: enter image description here

Thật không may StackOverflow dường như thu nhỏ hình ảnh vì vậy đây là một liên kết trực tiếp quá: http://i.stack.imgur.com/vYFaF.png

Và đây là các mã được sử dụng để render:

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics labelDrawing = e.Graphics; 
    labelDrawing.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; 

    labelDrawing.DrawString("Setup Progress", new Font("Calibri", 10, FontStyle.Bold, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(12, 9)); 
    labelDrawing.DrawString("The following components are being configured.", new Font("Calibri", 10, FontStyle.Regular, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(24, 27)); 
} 

Tôi đã thử thay đổi TextRenderingHint thành mọi tùy chọn, nhưng không có vấn đề gì tôi thử nếu có bất kỳ sự chống răng cưa nào sau đó xuất hiện trong một mớ hỗn độn mờ, mờ như trong ảnh chụp màn hình. Bất kỳ ý tưởng?

+1

Tôi đã sử dụng Nhãn có nền trong suốt. Loại vấn đề gì bạn đã thiết lập thuộc tính BackColor của nhãn thành Transparent? –

+0

Đặt BackColour thành Transparent chỉ cung cấp cho tôi nền màu xám, có vẻ như đây là do nhãn luôn chọn nền của kiểm soát gốc. Liên kết của ParmesanCodice trong bình luận của ông cho thấy một hiện tượng tương tự. – Coxy

+0

Lạ. Tôi đoán tôi đã chỉ thực hiện nó với các hình thức bắt nguồn từ các hình thức vẽ nền của riêng mình, vì vậy về mặt kỹ thuật nhãn được chọn lên nền của cha mẹ của nó và có vẻ ok. –

Trả lời

2

Bạn có thể có nhãn trong suốt trong .NET.
Kiểm tra bài viết này trên CodeProject trên How to Use Transparent Images and Labels in Windows Forms

Đối với bạn vẽ vấn đề Calibri không có một kích thước phông chữ mẹ đẻ của 10 Bạn có thể xác minh điều này trong Control Panel-> Fonts. Kích thước phông chữ gốc nhỏ nhất là 12 (ít nhất là trên máy của tôi). Thay đổi bạn từ kích thước thành 12 và bạn sẽ thấy nó tốt hơn nhiều.

Khi bạn không sử dụng kích thước phông chữ gốc ở đâu đó dưới mui xe Windows/.NET/GDI + sẽ cố gắng mở rộng phông chữ cho bạn. Việc chia tỷ lệ này rất có thể gây ra sự cố của bạn.

+0

Cảm ơn các thông tin, nhưng Calibri trông tốt trong Word ở 10 pt và vẫn xấu xí trong ứng dụng của tôi tại 12 pt. Như một phông chữ truetype, nó sẽ có thể hiển thị ở mọi kích thước mà không bị xấu, như trong mockup của tôi. – Coxy

+0

Vâng, tôi hiểu sự thất vọng của bạn. Chúng tôi đã có một vấn đề tương tự với Courier New (cũng là một phông chữ loại thực) trong một hộp văn bản phong phú. Bạn đã thử nó ở kích thước 12? Cũng nên nhớ rằng nó rất có thể là Word/Photo Shop/etc là nhiều hơn "cleaver" tại thay đổi kích thước phông chữ ... – ParmesanCodice

+0

Vâng, tôi đã thử kích thước 12 pt trong ứng dụng của tôi. Tôi nghĩ rằng nó phải là một vấn đề ClearType. – Coxy

Các vấn đề liên quan