מדריך WPF – סידור פקדים: DockPanel
בפרק זה נלמד על הפאנל 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>
התוצאה של הרצת קוד זה היא
התכונה 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>
תוצאת הקוד הזה תראה כך
חשיבות סדר הפקדים
נשים לב שיש חשיבות לסדר הפקדים בתוך ה 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>
נקבל כעת את התוצאה
ניתן לראות שאורך הפקד האדום קצר יותר בדוגמא השניה כי נותר לו פחות מקום לאחר שהפקד הירוק כבר נקבע. זאת מאחר וכאשר אנו מצמידים פקד לאחד הכיוונים, הפקד יתפוס את כל המקום שנותר באותו כיוון.
התכונה 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>
נקבל את התוצאה
נשים לב שבמקרה זה ניתן להוריד את הגדרת DockPanel.Dock מהפקד האחרון מאחר ואין לה משמעות יותר.
תגובות בפייסבוק