2013-11-22 4 views
2

Я использую ScrollViewer в среде MVVM для навигации по карте Европы. Но когда я использую ScrollViewer, deltaScale для манипуляцииDeltaEventArgs.Pinchmanipulation не работает. DeltaScale остается на одном, несмотря ни на что. Я попытался взглянуть на Current и Original of Pinchmanipulation, и они те же. Так может ли кто-нибудь помочь мне с возможностью масштабирования при использовании scrollViewer?Pinch Zoom с ScrollViewer

ManipulationDelta является:

public void Zoom(ManipulationDeltaEventArgs e) 
    { 
     if (e.PinchManipulation == null) 
     { 
      return; 
     } 



    } 

ответ

0

Я не думаю, что ScrollViewer поддерживает масштабирование в Windows Phone 8. Только Windows Store приложения могут сделать это прямо сейчас.

+0

Удовлетворены тем же самым заключением, но знаете ли вы способ обойти и реализовать функцию масштабирования самостоятельно с помощью scrollviewer? – JonasN89

+0

Это довольно сложно, но я использую ViewportControl (не ViewBox) внутри ScrollViewer. У scrollviewer должен быть установлен ManipulationMode для элемента управления. Вот почему это сложно: если содержимое ViewboxControl больше размеров ViewboxControl (видимая часть), то ViewboxControl будет проглатывать все события манипуляции. Это нормально, если вы увеличиваете масштаб. ViewboxControl будет действовать как ваш ScrollViewer. Когда вы НЕ увеличиваете масштаб изображения, вам необходимо убедиться, что ViewboxControl имеет тот же размер, что и его содержимое, чтобы передать события Манипуляции в ScrollViewer. –

+0

Я забыл упомянуть, что вам нужно реализовать собственный пинч/масштабирование с помощью любого элемента управления, который вы хотите использовать в качестве базы внутри Scrollviewer/ViewportControl. Найдите образец базового объектива и посмотрите на элемент управления MediaViewer внутри. Это может дать вам некоторые подсказки. С другой стороны, возможно, вам стоит забыть о Scrollviewer и просто использовать ViewportControl. Моя реализация была слишком специфичной. –