מדריך Silverlight – סידור פקדים: Canvas

‏ • Sela

Canvas הוא פאנל שמאפשר להציב כל פקד שהוא מכיל, בנקודה מסוימת בחלון. שיטה זו מזכירה את שיטת העבודה בסביבת WinForms, שבה היינו קובעים את המיקום של הפקד ע"י שימוש בתכונות Top ו Left.

הצבה של פקד בנקודה מסוימת בחלון נעשית ע"י שימוש בתכונות הבאות:

  • Canvas.Left – קובע את מיקום הפקד ע"י ציון המרחק מצד שמאל של ה Canvas.
  • Canvas.Top – קובע את מיקום הפקד ע"י ציון המרחק מראשית ה Canvas.
  • Canvas.Right – קובע את מיקום הפקד ע"י ציון המרחק מצד ימין של ה Canvas.
  • Canvas.Bottom – קובע את מיקום הפקד ע"י ציון המרחק מתחתית ה Canvas.

כמובן שמספיק להשתמש בשתיים מתוך התכונות הללו בשביל לקבוע את מיקום הפקד. לרוב נהוג לבחור בתכונות Canvas.Left ו Canvas.Top, אך בהחלט ניתן לבחור סט אחר אם זה יוצא יותר נוח.

בדוגמת הקוד הבאה אנחנו מציבים שני כפתורים. הכפתור הראשון יוצב בנקודה (100,200) ואילו הכפתור השני יוצב בנקודה (150,100):

<UserControl x:Class="FirstSilverlightApplication3.MainPage"
            >="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            >:x="http://schemas.microsoft.com/winfx/2006/xaml"
            >:d="http://schemas.microsoft.com/expression/blend/2008"
            >:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            mc:Ignorable="d"
            d:DesignHeight="300"
            d:DesignWidth="400">
  <Canvas>
    <Button Content="Button 1"
           Canvas.Left="100"
           Canvas.Top="200" />
    <Button Content="Button 2"
           Canvas.Left="150"
           Canvas.Top="100" />
  </Canvas
>
</
UserControl
>

התוצאה שנקבל

מדריך Silverlight – סידור פקדים: Canvas

נעיר כי למרות שהפקד Canvas נראה מאוד חזק בכך שהוא נותן לנו שליטה מלאה במיקום הפקדים שלנו, מומלץ מאוד לא להשתמש בו. הסיבה היא ששימוש שפקד ה Canvas מאוד לא גמיש לשינויים. פקד זה לא יודע להתאים את גודל ומיקום הפקדים לתוכן או לגודל החלון. הפקדים נמצאים במקום המדויק שלהם ואינם יכולים לזוז. למעשה עם פקד זה אנחנו מקבלים את כל המגבלות המקוריות של מערכת הLayout בWinForms.

תגיות: , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק