Comment ajouter la possibilité de zoomer un contrôle WPF et son contenu ?
Il faut imbriquer le ou les contrôles que l’on souhaite zoomer simultanément dans un Grid
, sur lequel on applique une transformation de Layout
de type transformation d’échelle.
Par exemple :
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" > <Grid Name="ZoomableContentGrid" RenderTransformOrigin="0.5,0.5"> <Grid.LayoutTransform> <TransformGroup> <ScaleTransform x:Name="GridScaleTransform"/> </TransformGroup> </Grid.LayoutTransform> <!-- le contenu zoomé se place ici ... --> </Grid> </ScrollViewer>
la méthode en C# suivante appliquera le ratio de zoom souhaité (entre 0 et 1 compris) :
void SetZoom( // facteur de zoom entre 0 et 1 compris double zoomFactor) { GridScaleTransform.ScaleX = zoomFactor; GridScaleTransform.ScaleY = zoomFactor; }
Cette méthode pourra être liée à des événements de contrôles comme la sélection d’une liste déroulante, la saisie dans une boîte de texte ou le changement de valeur d’un slider …
Suggestions
Zoom animé avec WPF
Tracer les fonctions "easing" de WPF
Licence libre MIT
Premiers pas avec ANTLR4 en C#
Tuer un processus avec un script PowerShell
async / await : appeler une méthode async depuis une méthode non async
Comment configurer un thème pour le prompt de Windows Terminal avec indication de status Git / sessi...
ok. ça marche.