Я пытаюсь реализовать функцию увеличения / уменьшения масштаба в 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. Что здесь происходит?