2016-04-06 27 views
0

Aşağıdaki kod NET Compact Framework altında System.Windows.Forms.PictureBox arasında System.Windows.Forms.PaintEventHandler (E türü PaintEventArgs ait) içinde oluşur:Neden bu sözde kesikli çizgi Windows Forms .NET Compact Framework'de katı olarak gösteriliyor?

var penDashed = new Pen(Color.Red, 3); 
penDashed.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; 
using (penDashed) 
{ 
    e.Graphics.DrawLine(penDashed, 30, 30, 100, 30); 
} 

çizgi katı hale olduğu Aslında DashStyle'ı Dashed olarak ayarladım. Uzunluk ve renk iyi.

Herhangi bir fikrin var mı?

+0

olması gerektiği gibi çalışması gerekir mi. Yine de neden kullanma cümlesi dışında Kalemi ilan ettiğinizi ve değiştirdiğinizi merak ediyorum. Bu bana yanlış görünüyor .. 'kullanarak (Kalem penDashed = new Pen (Color.Red, 3)) {penDashed.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; e.Graphics.DrawLine (penDashed, 30, 30, 100, 30); ben bunu yazmak nasıl} 'olurdu .. – TaW

+0

zaman bu gibi ilan ediyor nedeni kalıtsal kodunda zaten mevcut stili takip ediyorum olmasıdır. Aslında katı olan dikdörtgenler çiziyor (Graphics.DrawPolygon() kullanarak). Karıştırmaya kesikli bir dikdörtgen eklemeyi deniyorum. Kesikli dikdörtgen katı olarak işleniyordu, bu yüzden bir satır gibi daha basit bir şey denedim ve aynı sonucu aldım. – GrantA

+1

Kalemin genişliği, çizgiların birbirine temas etmesine neden olur. Kalem genişliğinde 1 olan bir çizgi çizerseniz, tire tekrar belirir. İstenilen sonuca ulaşmanın herhangi bir yolunun olup olmadığını bilmiyorum. –

cevap

3

Bu aslında documented (Windows API için değil, özellikle kompakt çerçevesi için) here:

Windows CE geniş kalem destekler ve kafeslerin kesik ama çerçeve kalemler içinde değil destek noktalı kalem yapar geniş hem de geometrik kalemler, uç kapak stilleri, veya kalem kesik.

+0

Bunun için teşekkürler. (Ve Macar notasyonu ile çalışmanın kötü anılarını geri getiriyor. :)) Tabii ki, CE için varsayılan kalem genişliği olarak bağladığınız belgede belirtilen genişliği 1'e düşürerek, tire tekrar görünecektir. Bu, MS belgelerinin .NET belgelerinde kolayca erişilebilen bir yer içermesi güzel olurdu. – GrantA