01/10/2018, 09:39

Làm thế nào để phóng to chữ không bị vỡ trong winform vậy mấy bác?

câu hỏi của em như tiêu đề, lần trước em đăng mà không có ai trả lời cả, nên em đăng lại

Tao Không Ngu. viết 11:47 ngày 01/10/2018

Hi Le Nhat Phong
Có bị làm sao đâu nhỉ bạn chụp ảnh lên xem.

Le Nhat Phong viết 11:44 ngày 01/10/2018

Văn Dương viết 11:40 ngày 01/10/2018

Chắc dùng thư viện đồ hoạ như Open GL, DirectX mà vẽ chứ đó. Chứ GDI+ của Winform xin bó tay.

Le Nhat Phong viết 11:54 ngày 01/10/2018

chỗ 000 bị vỡ đó bác

明玉 viết 11:50 ngày 01/10/2018

GDI+ hoàn toàn làm được nhé, chẳng qua chả ai quan tâm để ý
Bạn tạo một class kế thừa cái Label, override hàm này, rồi xài nó như một control mới (compile một lần thì mới xài được):

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Text;
using System.Windows.Forms;

namespace TestTesTest
{
   class  BetterLabel : Label
   {
      StringFormat sf = new StringFormat();
      protected override void OnPaint(PaintEventArgs e)
      {
         e.Graphics.TextRenderingHint = TextRenderingHint.SystemDefault;
         e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
         float x = this.DisplayRectangle.X;
         float y = this.DisplayRectangle.Y;
         float width = this.DisplayRectangle.Width - 1; // tránh lỗi mất pixel cạnh dưới và cạnh phải
         float height = this.DisplayRectangle.Height - 1;
         var rect = new RectangleF(x, y, width, height);
         sf.LineAlignment = StringAlignment.Center;
         sf.Alignment = StringAlignment.Center;
         sf.FormatFlags = StringFormatFlags.NoClip & StringFormatFlags.NoWrap; // sf thì sửa theo ý thích
         e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), rect, sf);
      }
   }
}

Tao Không Ngu. viết 11:54 ngày 01/10/2018

Hi Le Nhat Phong
Trong trường hợp như này mình khuyên bạn nên dùng các thư viện đồ họa xử lý đơn giản và thuận lơi hơn. Các control trong wìnorm không thiết kế tốt cho nhiều trường hợp cần tùybiến cao.
Giải pháp dùng piterbox. Bạn có ảnh của các con số size lớn sau đó dùng picterbox để hiển thị lên. (Một giải pháp trong đồ họa.)

明玉 viết 11:54 ngày 01/10/2018

Theo mình thì không cần dùng dao to để giải quyết vấn đề nhỏ (như của bạn thớt).
To như game mới hẵng dùng thư viện hỗ trợ.

Bài liên quan
0