2016-06-17 17 views
0

私はC#winformsを使って、矩形を描画してから塗りつぶします。ここでC#塗りつぶし矩形は空白を残す

は、コードは次のとおりです。

LinearGradientBrush secondGradient = new LinearGradientBrush(frontRect, Color.FromArgb(255, 190, 171, 18), Color.FromArgb(255, 152, 186, 27), 90); 

    /* second row element */ 
        g.DrawRectangle(pen, leftInsertionBox); 
        g.FillRectangle(secondGradient, leftInsertionBox.X + 1, leftInsertionBox.Y + 1, leftInsertionBox.Width - 1, leftInsertionBox.Height - 1); 

        g.DrawRectangle(pen, leftCoverBox); 
        g.FillRectangle(secondGradient, leftCoverBox.X + 1, leftCoverBox.Y + 1, leftCoverBox.Width - 1, leftCoverBox.Height - 1); 
        /* second row element */ 

問題は、私は私の矩形ラインフィル間の空白のピクセルのように見ることができるということです。

enter image description here

これを解決する方法上の任意の手がかり?

+1

'Fill'全体の長方形(+1オフセットを除去)、その後、' imgurが私のためにブロックされているので、Draw' –

+0

は、私がイメージを見ることはできませんが、SolidBrushでそれを試してみましたか? – hometoast

+0

逆の順序で操作を試みましたか?私は、オフセット計算(すなわち、四角形全体を塗りつぶす)なしで塗りつぶしを試み、その後に境界線を描画します。 – itsme86

答えて

1

私は操作を逆にしようとします。塗りつぶし操作を最初に行い、オフセット計算を削除して(つまり、領域全体を塗りつぶして)、境界線を描画します。まず

g.FillRectangle(secondGradient, leftInsertionBox.X, leftInsertionBox.Y, leftInsertionBox.Width, leftInsertionBox.Height); 
g.DrawRectangle(pen, leftInsertionBox); 

g.FillRectangle(secondGradient, leftCoverBox.X, leftCoverBox.Y, leftCoverBox.Width, leftCoverBox.Height); 
g.DrawRectangle(pen, leftCoverBox); 
0

追加した余分なピクセルを削除してみてください。

関連する問題