TOC

This article has been localized into Danish by the community.

Paneler:

DockPanel kontrollen

DockPanel kontrollen gør det nemt at forankre indhold i alle fire retninger (top, bund, venstre og højre). Dette gør det til at storartet valg i mange situationer, hvor du ønsker at inddele vinduet i specifikke områder, specielt fordi som standard vil det sidste element i DockPanel - med mindre, det specifikt bliver slåe fra - automatisk fylde resten af pladsen (centreret).

Som vi har set med mange andre paneler i WPF starter du med at benytte panelmulighederne ved at bruge en tilknyttet egenskab fra det, i dette tilfælde DockPanel.Dock egenskaben, som bestemmer i hvilken retning, den underordnede kontrol skal forankres. Hvis du ikke bruger dette, vil de(n) første kontrol(ler) blive forankret til venstre og den sidste udfyldende den resterende plads. Her er et eksempel på hvordan, du bruger det:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="250" Width="250">
	<DockPanel>
		<Button DockPanel.Dock="Left">Left</Button>
		<Button DockPanel.Dock="Top">Top</Button>
		<Button DockPanel.Dock="Right">Right</Button>
		<Button DockPanel.Dock="Bottom">Bottom</Button>
		<Button>Center</Button>
	</DockPanel>
</Window>

Som allerede nævnt tildeler vi ikke en forankringsposition til den sidste underordnede kontrol, fordi den automatisk centreres og udfylder den resterende plads. Du vil også bemærke, at kontrollerne omkring centrum kun optager den plads, de behøver - alt andet efterlades til centerpositionen. Det er også hvorfor du vil se, at den højre knap tager en smule mere plads end venstre knap - det ekstra tegn i teksten kræver ganske enkelt flere pixels.

Den sidste ting, du sikkert vil bemærke, er, hvordan pladsen bliver delt. F.eks. vil Top knappen ikke få hele toppladsen, fordi Left knappen tager en del af det. DockPanel kontrollen beslutter hvilken kontrol, der skal favoriseres, ved at se på deres position i markup. I dette tilfælde får Left knappen fortrinsret fordi, den er placeret først i markup. Heldigvis betyder det også, at det er meget nemt at ændre, som vi vil se i det næste eksempel, hvor vi også har udjævnet pladsen en smule ved at tildele bredder/højder til de underordnede kontroller:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="250" Width="250">
	<DockPanel>
		<Button DockPanel.Dock="Top" Height="50">Top</Button>
		<Button DockPanel.Dock="Bottom" Height="50">Bottom</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>	
		<Button>Center</Button>
	</DockPanel>
</Window>

Top- og bund-kontrollerne har nu fortrinsret over venstre og højre kontrollerne, og de optager 50 pixels i enten højde eller bredde. Hvis du gør vinduet større eller mindre vil du se, at denne statiske højde/bredde fastholdes uanset hvad - kun centerområdet bliver større eller mindre ved størrelsesændring af vinduet.

LastChildFill

Som nævnt er standardopførslen i DockPanel, at den sidste underordnede kontrol optager resten af pladsen, men dette kan slås fra ved hjælp af LastChildFill. Her er et eksempel, hvor vi slår det fra, og samtidig viser vi muligheden for at forankre mere end en kontrol til samme side:

<Window x:Class="WpfTutorialSamples.Panels.DockPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DockPanel" Height="300" Width="300">
	<DockPanel LastChildFill="False">
		<Button DockPanel.Dock="Top" Height="50">Top</Button>
		<Button DockPanel.Dock="Bottom" Height="50">Bottom</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Left" Width="50">Left</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>
		<Button DockPanel.Dock="Right" Width="50">Right</Button>
	</DockPanel>
</Window>

I dette eksempel forankrer vi to kontroller til venstre og to kontroller til højre, og samtidig slår vi LastChildFill egenskaben fra. Dette efterlader og med tom plads i midten, hvilket kan være at foretrække i nogle tilfælde.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!