Nasıl yapılır: Öğe Ölçeklendirme
Bu örnekte, bir ScaleTransform öğenin ölçeklendirilmesi için öğesinin nasıl kullanılacağı gösterilmektedir.
ScaleX öğesini belirttiğiniz faktöre göre yeniden boyutlandırmak için ve ScaleY özelliklerini kullanın. Örneğin, ScaleX 1,5 değeri öğeyi özgün genişliğinin yüzde 150'sine genişletir. ScaleY 0,5 değeri bir öğenin yüksekliğini yüzde 50 küçültür.
Ölçek işleminin CenterX merkezi olan noktayı belirtmek için ve CenterY özelliklerini kullanın. Varsayılan olarak, bir ScaleTransform , dikdörtgenin sol üst köşesine karşılık gelen noktada (0,0) ortalanır. Bu, öğeyi taşımanın ve daha büyük görünmesini sağlamanın etkisine sahiptir, çünkü bir Transformuyguladığınızda nesnenin bulunduğu koordinat alanını değiştirirsiniz.
Aşağıdaki örnek ScaleTransform , 50'ye Rectangle50 boyutunu ikiye katlar. hem ScaleTransform hem de CenterXCenterYiçin 0 (varsayılan) değerine sahiptir.
Örnek
<!-- Scales a rectangle by 200% from a center of (0,0).-->
<Rectangle Height="50" Width="50" Fill="#CCCCCCFF"
Stroke="Blue" StrokeThickness="2"
Canvas.Left="100" Canvas.Top="100">
<Rectangle.RenderTransform>
<ScaleTransform CenterX="0" CenterY="0" ScaleX="2" ScaleY="2" />
</Rectangle.RenderTransform>
</Rectangle>
Genellikle ve öğesini ölçeklendirilen nesnenin merkezine ayarlarsınız CenterXCenterY : (Width/2, Height/2).
Aşağıdaki örnekte boyutu iki katına çıkan başka Rectangle bir örnek gösterilmektedir; ancak bunun ScaleTransform hem hem hem CenterYde CenterX için dikdörtgenin merkezine karşılık gelen 25 değeri vardır.
<!-- Scales a rectangle by 200% from a center of (25,25).-->
<Rectangle Height="50" Width="50" Fill="#CCCCCCFF"
Canvas.Left="100" Canvas.Top="100" Stroke="Blue" StrokeThickness="2">
<Rectangle.RenderTransform>
<ScaleTransform CenterX="25" CenterY="25" ScaleX="2" ScaleY="2" />
</Rectangle.RenderTransform>
</Rectangle>
Aşağıdaki çizimde iki ScaleTransform işlem arasındaki fark gösterilmektedir. Noktalı çizgi, ölçeklendirmeden önce dikdörtgenin boyutunu ve konumunu gösterir.
Aynı ScaleX ve ScaleY değerlerine ama farklı merkezlere sahip iki ScaleTransform işlemi
Örneğin tamamı için bkz . 2B Dönüşümler Örneği.
Ayrıca bkz.
.NET Desktop feedback