2016-01-03 7 views
5

透明な画像は、Windowsフォームでは純粋な悪です。なぜなら、それらを処理するカスタムコントロールクラスを作成したからです。デザイナーは自分のコントロールが空であると表示しません。私は微妙な境界線を追加したいと思いますが、デザインビューでのみ(境界線がユーザーによって追加されない場合)どうすればいい?デザインビューでカスタムコントロールに罫線を追加する方法は?

私のクラスには、次のとおりです。

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); 
     } 
    } 
} 

答えて

6

チェックif (this.DesignMode)あなたOnPaintとコールDrawRectangleに。

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

関連する問題