اشکال در WPF فقط می توانند درون کانتینرها یا کنترلهای دیگری که از Panel مشتق شده اند قرار بگیرند.
کشیدن چندین خط صاف در امتداد هم Polyline
برای کشیدن خطوطی که پشت سر هم رسم می شوند این از این کنترل استفاده می کنند که برای کشیدن باید خاصیت آرایه ای Points که نشاندهنده نقاط است را باید مقدار دهی کرده و خطوط بین نقاط رسم می شود. نحوه دادن اطلاعات نقاط به آرایه Points بدین صورت است که به ازای هر X,Y یک نقطه ایجاد می شود و برای جدا کردن نقاط از فاصله استفاده کنید
<Canvas Margin="10" Height="300" Width="300">
<!-- Polyline Left , Top -->
<Polyline
Points="10,110 110,20"
Stroke="Black" StrokeThickness="4" />
<!-- Polyline Right , Top -->
<Polyline
Points="10,110 110,110 110,10"
Stroke="Red" StrokeThickness="4"
Canvas.Left="150" />
<!-- Polyline Left , Bottom -->
<Polyline
Points="10,100 50,110 50,50 100,34"
Stroke="Blue" StrokeThickness="4"
Canvas.Left="0" Canvas.Top="120" />
<!-- Polyline Right , Bottom -->
<Polyline
Points="10,110 110,110 110,10 10,20 10,50 70,60"
Stroke="Green" StrokeThickness="4"
Canvas.Top="120" Canvas.Left="150" />
</Canvas>
توضیحات بیشتر در شکل زیر
نکته :
چون از کانتینر Canvas استفاده شده است مختصات داده شده ثابت هستند و با توجه به مقادیر Canvas.Left (فاصله از سمت چپ) و Canvas.Top (فاصله از بالا) به مقادیر نقاط داده شده اضافه می شود(در واقع Canvas.Left و Canvas.Top نقطه صفر برای کشیدن اشکال را مشخص می کنند و بصورت پیش فرض صفر می باشند)
مثال در VB.Net
Dim poly As New Polyline
Dim po As Point
po.X = 100
po.Y = 100
poly.Points.Add(New Point(10, 10))
poly.Points.Add(New Point(100, 10))
poly.Points.Add(po)
poly.Points.Add(New Point(200, 200))
poly.Stroke = Brushes.Black
grid1.Children.Add(poly)
اشکال در WPF فقط می توانند درون کانتینرها یا کنترلهای دیگری که از Panel مشتق شده اند قرار بگیرند.