none
PictureBoxでControlPaint.DrawReversibleFrameを使用するとき、描画色が黒の時だけ勝手に塗りつぶされる RRS feed

  • 質問

  • 以下のようなコードでラバーバンドを描画しようとするとき、描画色が黒の時だけラバーバンドの選択域内が勝手に黒で塗りつぶされてしまいます。なにか解決策がありますでしょうか。教えていただきたいです。

     

               /// <summary>
    		/// ラバーバンド(矩形)を描画
    		/// </summary>
    		/// <param name="p1"></param>
    		/// <param name="p2"></param>
    		private void DrawRubberRectangle(Point p1, Point p2)
    		{
    			//スクリーン座標に変換
    			p1 = Canvas.PointToScreen(p1);
    			p2 = Canvas.PointToScreen(p2);
    
    			//四角形
    			Rectangle rect = new Rectangle();
    
    			//四角形の左上隅x座標
    			if (p1.X < p2.X)
    				rect.X = p1.X;
    			else
    				rect.X = p2.X;
    
    			//四角形の左上隅x座標
    			if (p1.Y < p2.Y)
    				rect.Y = p1.Y;
    			else
    				rect.Y = p2.Y;
    
    			//四角形の幅と高さ
    			rect.Width = System.Math.Abs(p2.X - p1.X);
    			rect.Height = System.Math.Abs(p2.Y - p1.Y);
    			
    			//ラバーバンド(矩形)を描画
    			ControlPaint.DrawReversibleFrame(rect, Canvas.BackColor, FrameStyle.Dashed);
    			
    		}
    

     

    ちなみに、Canvas.BackColorは、Canvas.BackColor = "{Name=Transparent, ARGB=(0, 255, 255, 255)}"となっています。
    2011年1月13日 1:18

回答

すべての返信

  • 自己解決しました。

    失礼しました。

    • 回答としてマーク 馬鹿1号 2011年1月15日 20:15
    2011年1月15日 20:15
  • もし差し支えなければ、私を含め、今後同様の問題を抱えてこのスレッドに辿り着いた方のためにも、どのような原因でどのように解決されたのかを教えていただけませんでしょうか?

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年1月16日 1:52
    モデレータ