Come compensare il punto di partenza di un'immagine in un controllo dell'immagine WPF (panoramica un'immagine)
Domanda
Sto cercando di cambiare il punto di partenza di un'immagine all'interno di un controllo dell'immagine WPF, non riesco a trovare una risposta diretta.
Sto cercando di consentire all'utente di pan e visualizzare un'immagine più grande del controllo dell'immagine.
Ecco un Link a uno screenshot della mia app e di cosa ho bisogno.
Proprio come esempio, voglio che il punto di partenza sia (image.Height/2
, image.Width/2
) invece di (0,0). Ho bisogno che il punto di partenza sia dinamicamente mutevole tramite il codice C#.
Soluzione
Prova a posizionare il controllo dell'immagine all'interno di un visualizzatore di scorrimento.
<ScrollViewer
x:Name="MyScrollViewer"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden">
<Image .../>
</ScrollViewer>
Quindi è possibile utilizzare i metodi di ScrollToverticalOffset e ScrollToHorizontalOffset nel codice.
Altri suggerimenti
So che questo arriva troppo tardi, ma mi sono trovato su un problema simile e ScrollViewer
Non funzionerei per me perché ho bisogno di gestire gli eventi di interazione del mouse sull'immagine.
Invece, la mia soluzione consiste nel posizionare il Image
dentro a Canvas
, quindi impostazione (nel mio caso con un legame dati) entrambi Canvas.Left
e Canvas.Top
Proprietà allegate su detto Image
:
<Canvas>
<Image Canvas.Left="{Binding MyOffset.X}" Canvas.Top="{Binding MyOffset.Y}" />
</Canvas>