2016-06-17 88 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的偏移量),然後'Draw' –

+0

我看不到圖像,因爲imgur被阻止我,但你有一個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

嘗試刪除您添加的額外像素。

相關問題