9
votes

Façons de zoomer dans WPF

Je dois mettre en œuvre un zoom comme au bureau 2010.

Le contenu peut être n'importe quel élément d'interface utilisateur, y compris une grille tiers (probablement Telerik)

Je sais 4 façons de mettre en œuvre zoom.

Quelle est la meilleure façon (performance) à implémenter zoomer dans ce cas?


2 commentaires

Quelles sont vos 4 façons? Je fais un zoom avec scaltransform.


Viewbox, transparente Transform (échelle), DocumentViewer, Toile


4 Réponses :


2
votes

Habituellement, le moyen le plus simple et le plus rapide de zoomer est de définir le rendutransform sur l'élément à zoomer sous forme d'un scaltransform et définissez le scalex et échelle propriétés de la transformation.


6 commentaires

RenderTransform n'est pas bon pour les fenêtres complexes, besoin d'utiliser layoutTransform


RenderTransform est certainement la manière la plus performante. Pourquoi avez-vous besoin de layoutTransform?


La transformation de rendez-vous entraînera une superposition de vos articles dans un panneau par exemple .. Cela ne considère pas ce problème de recouvrement de manière inutile pour les écrans complexes ...


De plus, si vous voulez faire du défilement lors du zoomer, il ne fonctionnera jamais avec RenderTransform.


Pourquoi le bowvote? RenderTransform est définitivement la voie à suivre si vous voulez vraiment zoomer avec le panoramique. LayoutTransform est toujours centré. Aussi @chenkinnrot rien ne se chevauche si vous appliquez la transformation du rendu sur le panneau, pas chaque élément individuel. Pour Simple Stuff, layoutTransform pourrait être suffisant, mais si j'ai besoin de plus de contrôle, il n'ya aucun moyen de se rendre à RenderTransform.


Je suis d'accord avec Chen: RenderTransform échelle uniquement le contenu d'un élément, mais ne redimensionne pas l'élément lui-même. Donc, le contenu sera tiré sur la frontière. En revanche, layoutTransform redimensionnera l'élément lui-même pour rendre le contenu à l'échelle adapté à celui-ci.



0
votes

Vous pouvez utiliser une toile pour dessiner vos commandes qu'elle prend en charge le zoom redimensionner et la rotation


1 commentaires

S'il vous plaît élaborer ... Expliquez par exemple ce que "toile" est et où on pourrait le trouver?



1
votes

Vous pouvez utiliser le composant VIEWBOX tel que ci-dessous

<Viewbox Width="..." Height="...">
    <Grid>     
       .
       .
       .
    </Grid>
</Viewbox>


0 commentaires

2
votes

La transformation de la mise en page est le moyen le plus flexible et le plus efficace de zoomer et de conserver la mise en page tel que conçu en premier lieu.


0 commentaires