Come compensare il punto di partenza di un'immagine in un controllo dell'immagine WPF (panoramica un'immagine)

StackOverflow https://stackoverflow.com/questions/6344472

  •  27-10-2019
  •  | 
  •  

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#.

È stato utile?

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top