Масштабирование с помощью ScrollViewer

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

Манипуляционная дельта:

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



    }

person JonasN89    schedule 22.11.2013    source источник


Ответы (1)


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

person Lee McPherson    schedule 15.02.2014
comment
В значительной степени пришел к такому же выводу, но знаете ли вы, как обойти и реализовать функцию масштабирования самостоятельно с помощью средства просмотра прокрутки? - person JonasN89; 21.02.2014
comment
Это довольно сложно, но я использую ViewportControl (не ViewBox) внутри ScrollViewer. У средства просмотра прокрутки для ManipulationMode должно быть установлено значение Control. Вот почему это сложно: если содержимое ViewboxControl больше, чем размеры ViewboxControl (видимая часть), то ViewboxControl проглотит все события манипуляции. Это нормально, если вы масштабируете. ViewboxControl будет действовать как ScrollViewer. Когда вы НЕ масштабируете, вам нужно убедиться, что ViewboxControl имеет тот же размер, что и его содержимое, чтобы он передал события Manipulation в ScrollViewer. - person Lee McPherson; 22.02.2014
comment
Я забыл упомянуть, что вам нужно реализовать собственное масштабирование/масштабирование с любым элементом управления, который вы хотите использовать в качестве основы внутри Scrollviewer/ViewportControl. Найдите образец Basic Lens и посмотрите на элемент управления MediaViewer внутри. Это может дать вам некоторые подсказки. Если подумать, возможно, вам следует забыть о Scrollviewer и просто использовать ViewportControl. Моя реализация была слишком специфичной. - person Lee McPherson; 22.02.2014