Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
Voor apps in Windows 10 wordt u aangeraden Windows.UI.Composition-API's te gebruiken in plaats van DirectComposition. Zie Uw bureaublad-app moderniseren met behulp van de visuallaagvoor meer informatie.
Het afsnijden biedt een manier om slechts een deel van een visueel element of visuele boom weer te geven door de weergave daarvan te beperken tot een bepaald rechthoekig gebied. In dit onderwerp wordt microsoft DirectComposition-ondersteuning beschreven voor het knippen van visuals. Het bevat de volgende secties:
Kniprechthoek
Een visueel object heeft een clipeigenschap die een rechthoekig gebied definieert of cliprechthoek, binnen de bitmapinhoud van de visual. Wanneer de visual wordt weergegeven op het scherm, wordt alleen het gedeelte van de bitmapinhoud in de cliprechthoek getekend op het scherm, terwijl de inhoud die zich buiten de rechthoek van de clip bevindt, wordt geknipt (niet getekend). De eigenschap Clip bevat standaard alle bitmapinhoud.
De eigenschap Clip van een visual is van toepassing op alle onderliggende en afgeleide visuals. Met andere woorden, alle inhoud van kinderen of nakomelingen die buiten de grenzen van de cliprechthoek van de ouder valt, wordt ook geknipt.
DirectCompositie past de eigenschap Clip toe voordat u de eigenschappen OffsetX, OffsetY en 2D Transform toepast, maar na het toepassen van de eigenschappen Effect en 3D Transform. Dit betekent dat 2D-transformaties, OffsetX en OffsetY van invloed zijn op zowel de visuele inhoud als de rechthoek van de clip. Terwijl 3D-transformaties en -effecten niet van toepassing zijn op de rechthoek van de clip.
Wanneer u bijvoorbeeld een offset of 2D-transformatie toepast, wordt de rechthoek van de clip beïnvloed door de transformatiematrix. Als u dus een offset toevoegt en een 2D-draaiing (45 graden) samen met een afgeronde hoekcliprechthoek, resulteert dit in:
Wanneer u een 3D-transformatie 'binnen' de cliprechthoek toepast, wordt de cliprechthoek niet beïnvloed door de transformatiematrix. Zelfs bij het toepassen van een draaiing rond de Z-as (in feite hetzelfde als in het vorige voorbeeld), is het volgende diagram het resultaat:
Houd er rekening mee dat de visual in de clip werd gedraaid omdat de 3D-matrix niet op de clip zelf wordt toegepast.
Als de eigenschap Clip is ingesteld op een lege rechthoek, wordt de visual volledig verborgen; met andere woorden, de visual is opgenomen in de visualstructuur, maar er wordt niets weergegeven. Als u een bepaalde visual niet wilt opnemen in een samenstelling, verwijdert u de visual uit de visuele boomstructuur in plaats van een lege cliprechthoek in te stellen. Het verwijderen van de visual resulteert in een betere prestatie.
U stelt de eigenschap Clip van een visual in met behulp van de methode IDCompositionVisual::SetClip. Deze methode bevat overbelastingen waarmee u de waarde van de eigenschap Clip kunt instellen op een statische rechthoek of op een clipobject. Gebruik een statische rechthoek als u de afmetingen van de cliprechthoek niet hoeft te wijzigen tijdens de levensduur van de visual. Als u de afmetingen wilt wijzigen of de cliprechthoek wilt animeren, gebruikt u een clipobject.
Clipobject
Een clipobject is een COM-object (Component Object Model) dat een cliprechthoek vertegenwoordigt. U maakt een clipobject met behulp van de methode IDCompositionDevice::CreateRectangleClip en gebruikt vervolgens de IDCompositionRectangleClip interface van het object om de eigenschappen van het object in te stellen. Een nieuw gemaakt clipobject heeft de minimale mogelijke waarden voor de eigenschappen Links en Top en de maximaal mogelijke waarden voor de eigenschappen Rechts en Onder, waardoor het een no-op clipobject wordt. Met andere woorden, het object vertegenwoordigt een cliprechthoek die de volledige bitmapinhoud van een visual zou bevatten.
Een clipobject bevat een set eigenschappen waarmee u afgeronde hoeken voor het clipobject kunt opgeven. Met de eigenschappen kunt u de x-radius en de y-radius van elke hoek van het knipobject instellen.
Rechthoek met geanimeerde clip
U kunt animatie toepassen op een cliprechthoek door animatieobjecten toe te passen op de eigenschappen Links, Boven, Rechts en Onder van een clipobject. Gebruik de overladen methode IDCompositionVisual::SetClip(IDCompositionClip) om de geanimeerde rechthoek toe te passen op de Clip-eigenschap van een visual.
Zie Animatie-voor meer informatie over animatie-objecten.
Verwante onderwerpen