UIElement.Arrange(Rect) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Plaatst onderliggende elementen en bepaalt een grootte voor een UIElement. Bovenliggende elementen roepen deze methode aan vanuit hun ArrangeCore(Rect)-implementatie (of een equivalent van WPF framework) om een recursieve indelingsupdate te vormen. Deze methode vormt de tweede pas van een indelingsupdate.
public:
void Arrange(System::Windows::Rect finalRect);
public void Arrange(System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)
Parameters
- finalRect
- Rect
De uiteindelijke grootte die door het bovenliggende element wordt berekend voor het onderliggende element, opgegeven als een Rect exemplaar.
Opmerkingen
Voor WPF scenario's op frameworkniveau moet gedrag voor Arrange niet (en kan dit niet, tenzij u schaduwt) worden gewijzigd. In plaats daarvan moet u de ArrangeOverride implementatie in uw klasse overschrijven. Uw ArrangeOverride-implementatie wordt intern aangeroepen door Arrange als onderdeel van standaardindelingsbewerkingen WPF op frameworkniveau. Uw ArrangeCore implementatie moet ook elk onderliggend element aanroepen ArrangeOverride als deze onderliggende elementen bevat.
Voor WPF scenario's op basis van kernelementen mag het gedrag voor Arrange niet (en kan niet, tenzij u schaduwt) worden gewijzigd. In plaats daarvan moet u in uw klas overschrijven ArrangeCore . Uw ArrangeCore-implementatie wordt intern aangeroepen door Arrange als onderdeel van standaardindelingsbewerkingen WPF op frameworkniveau. Hierbij wordt echter ervan uitgegaan dat u WPF indeling op frameworkniveau en het indelingssysteem gebruikt, wat vaak niet het geval is als u specifiek elementen op het WPF kernniveau van de UIElement basiselementklasse afgeeft. Uw ArrangeCore implementatie moet ook elk onderliggend element aanroepen Arrange als deze onderliggende elementen bevat. Houd er rekening mee dat het WPF kernscenario impliceert dat u geen afgeleide klasse FrameworkElement gebruikt, omdat FrameworkElement afdichtingen ArrangeCore.
Berekening van WPF indelingspositie op frameworkniveau in Windows Presentation Foundation (WPF) bestaat uit een Measure-aanroep en een Arrange-aanroep. Tijdens het Measure aanroepen bepaalt het indelingssysteem de groottevereisten van een element met behulp van een opgegeven Size (availableSize) argument. Tijdens het Arrange gesprek voltooit het indelingssysteem de grootte en positie van het begrenzingsvak van een element. Zie Indeling voor meer informatie.
availableSize kan een willekeurig getal zijn van nul tot oneindig. Elementen die moeten worden ingedeeld, retourneren het minimum Size dat ze nodig hebben via de availableSize parameter.
Wanneer een indeling voor het eerst wordt geïnstantieerd, ontvangt deze altijd een Measure oproep voordat Arrange. Na de eerste indelingspas kan het echter een Arrange aanroep zonder een Measure; dit kan gebeuren wanneer een eigenschap die alleen Arrange wordt gewijzigd (zoals uitlijning), of wanneer het bovenliggende item een Arrange zonder .Measure Een Measure oproep wordt automatisch ongeldig.Arrange
Indelingsupdates vinden over het algemeen asynchroon plaats (op een tijdstip dat wordt bepaald door het indelingssysteem). Een element geeft mogelijk niet onmiddellijk wijzigingen weer in eigenschappen die van invloed zijn op de grootte van elementen (zoals Width).
Note
Indelingsupdates kunnen worden geforceerd met behulp van de UpdateLayout methode. Het aanroepen van deze functie wordt echter niet aanbevolen, omdat dit meestal onnodig is en slechte prestaties kan veroorzaken. In veel situaties waarin aanroepen UpdateLayout mogelijk geschikt zijn, zal het indelingssysteem waarschijnlijk al updates verwerken. Het indelingssysteem kan indelingswijzigingen verwerken op een manier die alle benodigde updates kan optimaliseren als onderdeel van een pakket.
Het indelingssysteem bewaart twee afzonderlijke wachtrijen met ongeldige indelingen, één voor Measure en één voor Arrange. De indelingswachtrij wordt gesorteerd op basis van de volgorde van elementen in de visualstructuur. Elementen die hoger in de structuur staan, bevinden zich boven aan de wachtrij, om redundante indelingen te voorkomen die worden veroorzaakt door herhaalde wijzigingen in bovenouders. Dubbele vermeldingen worden automatisch uit de wachtrij verwijderd en elementen worden automatisch uit de wachtrij verwijderd als ze al geldig zijn.
Bij het bijwerken van de indeling wordt de Measure wachtrij eerst geleegd, gevolgd door de Arrange wachtrij. Een element in de Arrange wachtrij wordt nooit gerangschikt als er een element in de Measure wachtrij staat.