מדריך WPF

מדריך WPF – סידור פקדים: DockPanel

‏ • Sela

בפרק זה נלמד על הפאנל DockPanel.

הפאנל DockPanel מצמיד את הפקדים המוכלים בו לקצוות שונים של החלון.
לדוגמא, הקוד הבא מצמיד את הפקד Button לצד ימין של החלון:

<Window x:Class="DockPanelDemo.MainWindow"
       >="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       >:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow"
       Height="350"
       Width="525">
  <DockPanel LastChildFill="False">
    <Button Content="Dock to the right"
           DockPanel.Dock="Right" />
  </DockPanel
>
</
Window
>

התוצאה של הרצת קוד זה היא

מדריך WPF – סידור פקדים: DockPanel

 

התכונה DockPanel.Dock

לכל פקד שנמצא בתוך הפאנל DockPanel ניתן לשים את התכונה DockPanel.Dock ובעזרתה לקבוע את הקצה של החלון שאליו הפקד יוצמד.

הערכים האפשריים ל DockPanel.Dock הם:

  • Bottom – הצמדה לתחתית החלון
  • Left – הצמדה לשמאל
  • Right – הצמדה לימין
  • Top – הצמדה לראש החלון

 

הצמדת מספר פקדים

להלן דוגמא שמצמידה מספר פקדים לכיוונים שונים:

<Window x:Class="DockPanelDemo.MainWindow"
       >="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       >:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow"
       Height="350"
       Width="525">
  <DockPanel LastChildFill="False">
    <TextBox Text="Dock to the right"
            DockPanel.Dock="Right"
            Background="Red"
            />
    <TextBox Text="Dock to the bottom"
            DockPanel.Dock="Bottom"
            Background="Green"
            />
    <TextBox Text="Dock to the left"
            DockPanel.Dock="Left"
 
           
Background="Blue"
            />
  </DockPanel
>
</
Window
>

תוצאת הקוד הזה תראה כך

מדריך WPF – סידור פקדים: DockPanel

 

חשיבות סדר הפקדים

נשים לב שיש חשיבות לסדר הפקדים בתוך ה DockPanel.

לדוגמא, נחליף את הסדר בין הפקד הראשון לפקד השני בדוגמא הקודמת, באופן הבא:

<Window x:Class="DockPanelDemo.MainWindow"
       >="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       >:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow"
       Height="350"
       Width="525">
  <DockPanel LastChildFill="False">
    <TextBox Text="Dock to the bottom"
            DockPanel.Dock="Bottom"
            Background="Green"
            />
    <TextBox Text="Dock to the right"
            DockPanel.Dock="Right"
            Background="Red" />
    <TextBox Text="Dock to the left"
            DockPanel.Dock="Left"
 
           
Background="Blue"
            />
  </DockPanel
>
</
Window
>

  נקבל כעת את התוצאה

מדריך WPF – סידור פקדים: DockPanel

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

התכונה LastChildFill

לפקד DockPanel יש תכונה בשם LastChildFill שקובעת האם הפקד האחרון ב DockPanel (לפי סדר ההופעה) ימלא אוטומטית את כל השטח שנותר פנוי בתוך ה DockPanel.

לדוגמא, אם נקבע את ערך LastChildFill להיות True בדוגמא הקודמת

<Window x:Class="DockPanelDemo2.MainWindow"
       >="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       >:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow"
       Height="350"
       Width="525">
  <DockPanel LastChildFill="True">
    <TextBox Text="Dock to the bottom"
            DockPanel.Dock="Bottom"
            Background="Green"
            />
    <TextBox Text="Dock to the right"
            DockPanel.Dock="Right"
            Background="Red" />
    <TextBox Text="Dock to the left"
            Background="Blue"
            />
  </DockPanel
>
</
Window
>

נקבל את התוצאה

מדריך WPF – סידור פקדים: DockPanel

נשים לב שבמקרה זה ניתן להוריד את הגדרת DockPanel.Dock מהפקד האחרון מאחר ואין לה משמעות יותר.

תגיות: , , , ,

arikp

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

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