Проблемы с масштабированием ScrollViewer - PullRequest
1 голос
/ 23 июня 2011

Я пытаюсь реализовать функцию увеличения / уменьшения масштаба в ScrollViewer в WP7. Внутри моего прокрутки находится пользовательский элемент управления, который состоит из сетки и нескольких многоточий в различных ячейках.

Реализация без увеличения, я могу запустить приложение в эмуляторе и прокручивать прокрутку вверх / вниз, влево / вправо.

Моей первоначальной мыслью было использование масштабного преобразования в средстве просмотра прокрутки:

<ScrollViewer x:Name="svScale"
                Margin="0" 
                Grid.Row="1" 
                HorizontalScrollBarVisibility="Visible">
    <ScrollViewer.RenderTransform>
        <ScaleTransform ScaleX="2" ScaleY="2"/>
    </ScrollViewer.RenderTransform>
    <ScrollViewer.RenderTransformOrigin>
        <Point X=".5" Y=".5"/>
    </ScrollViewer.RenderTransformOrigin>
    <local:MyControl x:Name="test" 
                        Width="486" 
                        Height="56">
    </local:MyControl>
</ScrollViewer>

Проблема в том, что при прокрутке прокрутка всегда прокручивает содержимое обратно в вертикальный и горизонтальный центр.

Итак, я попытался применить масштабное преобразование к пользовательскому элементу управления:

<ScrollViewer x:Name="svScale"
                Margin="0" 
                Grid.Row="1" 
                HorizontalScrollBarVisibility="Visible">
    <local:MyControl x:Name="test" 
                        Width="486" 
                        Height="56"
                        SelectedKey="{Binding SelectedKey}"
                        SelectedScale="{Binding SelectedScale}">
        <local:MyControl.RenderTransform>
            <ScaleTransform ScaleX="2" ScaleY="2"/>
        </local:MyControl.RenderTransform>
        <local:MyControl.RenderTransformOrigin>
            <Point X=".5" Y=".5"/>
        </local:MyControl.RenderTransformOrigin>
    </local:MyControl>
</ScrollViewer>

Но когда я применяю масштабное преобразование к пользовательскому элементу управления, оно не выглядит больше, чем обычно, независимо от значений ScaleX и ScaleY. Что здесь происходит?

...