2016-01-03 16 views
5

Saydam görüntüler, Windows Forms'ta saf kötülüktür, bu yüzden bunları işlemek için özel bir denetim sınıfı oluşturdum. Tasarımcı, boş olduğunda kontrolümü göstermiyor. İnce bir sınır eklemek istiyorum, ancak sadece tasarım görünümünde (ve kullanıcı tarafından herhangi bir sınır eklenmediğinde). Bunu nasıl yapardım?Tasarım görünümünde özel bir kontrole sınır nasıl eklenir?

Benim sınıftır:

class TransparentImage : Control 
{ 
    public Image Image { get; set; } 

    protected Graphics graphics; 

    public string FilePath { get; set; } 

    protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams cp = base.CreateParams; 
      cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT 

      return cp; 
     } 
    } 

    protected override void OnPaintBackground(PaintEventArgs pevent) 
    { 
     // Don't paint background 
    } 

    protected override void OnPaint(PaintEventArgs e) 
    { 
     // Update the private member so we can use it in the OnDraw method 
     this.graphics = e.Graphics; 

     // Set the best settings possible (quality-wise) 
     this.graphics.TextRenderingHint = 
      System.Drawing.Text.TextRenderingHint.AntiAlias; 
     this.graphics.InterpolationMode = 
      System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; 
     this.graphics.PixelOffsetMode = 
      System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
     this.graphics.SmoothingMode = 
      System.Drawing.Drawing2D.SmoothingMode.HighQuality; 

     if (Image != null) 
     { 
      // Sets the images' sizes and positions 
      var width = Image.Size.Width; 
      var height = Image.Size.Height; 
      var size = new Rectangle(0, 0, width, height); 

      // Draws the two images 
      this.graphics.DrawImage(Image, size); 
     } 
    } 
} 

cevap

6

senin OnPaint Check if (this.DesignMode) ve DrawRectangle arayın.

new Pen(SystemColors.ActiveBorder) { DashStyle = DashStyle.Dot }

İlgili konular