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

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

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

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

GDI+ hoàn toàn làm được nhé, chẳng qua chả ai quan tâm để ý :wink:
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);
      }
   }
}

2 Likes

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.)

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ợ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?