2012-07-17 63 views
0

我正在使用WPF DrawingVisual和Pen,並遇到問題。WPF Pen DrawingVisual

當我畫一個DrawingVisual筆,比方說,一個矩形如下:

Pen StrokePen = new Pen(); 
StrokePen.Brush = Brushes.SkyBlue; 
StrokePen.Thickness = 6; 

DrawingVisual dv = new DrawingVisual 
DrawingContext dc = dv.RenderOpen(); 
dc.DrawingRectangle(......., StrokePen, ......); 
dc.Close(); 

我發現,中風半覆蓋類的以下矩形:

enter image description here

因此,如果筆的厚度太大,以致它比矩形更大,則矩形將消失(整個矩形被筆畫覆蓋)。

我可以調整一些設置,從而使該矩形將不包括矩形繪製的行程(筆)(只畫出超出矩形的邊)

謝謝。

回答

0

你可以簡單地用鋼筆繪製矩形兩次,第一次,然後用刷子:

using (DrawingContext dc = dv.RenderOpen()) 
{ 
    ... 
    dc.DrawingRectangle(null, StrokePen, ...); 
    dc.DrawingRectangle(FillBrush, null, ...); 
    .... 
} 
0

在矩形的wpf邊框是它的內部內容,所以沒有辦法強制它在矩形之外。但是,您可以調整矩形的大小以補償Pen.Thickness。