首页 新闻 赞助 找找看

WinPhone7中,如何对ScrollViewer里的内容进行缩放?

0
悬赏园豆:20 [待解决问题]
View Code
<ScrollViewer Grid.Row="1" Margin="12, 0, 12, 0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Canvas Name="Map" Width="1330" Height="924" Margin="0,0,0,0" Grid.RowSpan="2" Background="White">
<my1:LnBentTrack Canvas.Left="718" Canvas.Top="412" Height="43" x:Name="lnBentTrack15" Width="39" TrackStartPoint="0,40" TrackEndPoint="36,0" BentControlPoint="36,39" TrackColorBrush="Yellow" />
<my1:LnStraightTrack Angle="90" Canvas.Left="922" Canvas.Top="598" Height="18" x:Name="lnStraightTrack99" Width="12" TrackColor="Yellow" />
<my1:LnStraightTrack Angle="0" Canvas.Left="972" Canvas.Top="827" Height="11" x:Name="lnStraightTrack121" TrackColor="Yellow" Width="18" />
<my1:LnStraightTrack Angle="0" Canvas.Left="1007" Canvas.Top="827" Height="11" x:Name="lnStraightTrack120" TrackColor="Yellow" Width="18" />
</Canvas>
</ScrollViewer>

上面是代码,好多省略了,里面放了好多控件。

Canvas里也放了许多控件,手机的屏幕比较少,一次显示不全整个Canvas。

ScrollViewer可以通过水平滚动和垂直滚动来显示Canvas的其他区域,想实现像浏览图片那样的缩放,使得可以放大某个区域,或者缩小到手机屏幕能够显示整个Canvas。ScrollViewr好像不知道,请问大家怎么实现。

就像用手机查看图片,通过两只手指多点触摸,来进行图片的缩放。

但是我的都是控件,不是图片,应该怎么做啊???

粗暴的香蕉的主页 粗暴的香蕉 | 初学一级 | 园豆:174
提问于:2012-03-28 00:15
< >
分享
所有回答(1)
0

你用porit 不就行了吗

疯子ck | 园豆:58 (初学一级) | 2012-03-28 00:57

你好,能说得详细点吗

支持(0) 反对(0) 粗暴的香蕉 | 园豆:174 (初学一级) | 2012-03-28 09:23

就是用porit 来实现多个grid  切换,比如登陆操作什么的额

支持(0) 反对(0) 疯子ck | 园豆:58 (初学一级) | 2012-03-28 09:26

@疯子ck: porit也是一个控件吗?

支持(0) 反对(0) 粗暴的香蕉 | 园豆:174 (初学一级) | 2012-03-28 09:40

@粗暴的香蕉: 是的,算是容器吧,就行画布一样,但它支持多个切换

支持(0) 反对(0) 疯子ck | 园豆:58 (初学一级) | 2012-03-28 09:58

@疯子ck: 谢谢,我试一下。另外我昨天想通过ScaleTransform来对控件进行缩放,我昨天试了下,修改顶层控件ScrollViewer的ScaleTransform.ScaleX和ScaleTransform.ScaleY,可以缩放,但是连Canvas一起缩放了。然后我试着去修改Canvas的ScaleTransform,但是Canvas里面的控件却没有变化。

<ScrollViewer Grid.Row="1" Margin="12, 0, 12, 0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">            
<Button x:Name="btn" Click="OnClick" Content="Button">
<Canvas Name="Map" Width="1330" Height="924" Margin="0,0,0,0" Grid.RowSpan="2" Background="White">
<Canvas.RenderTransform>
<ScaleTransform x:Name = "mapTransform"/>
</Canvas.RenderTransform>
<my1:LnBentTrack Canvas.Left="718" Canvas.Top="412" Height="43" x:Name="lnBentTrack15" Width="39" TrackStartPoint="0,40" TrackEndPoint="36,0" BentControlPoint="36,39" TrackColorBrush="Yellow"/> <my1:LnStraightTrack Angle="90" Canvas.Left="922" Canvas.Top="598" Height="18" x:Name="lnStraightTrack99" Width="12" TrackColor="Yellow"/> <my1:LnStraightTrack Angle="0" Canvas.Left="972" Canvas.Top="827" Height="11" x:Name="lnStraightTrack121" TrackColor="Yellow" Width="18"/> <my1:LnStraightTrack Angle="0" Canvas.Left="1007" Canvas.Top="827" Height="11" x:Name="lnStraightTrack120" TrackColor="Yellow" Width="18"/> </Canvas> </ScrollViewer>


Xaml如上,我在Button的OnClick里面去设置Canvas中的mapTransform,但是Canvas里面的内容没有任何变化。不知道为什么,我想如果可以这样做的话,应该是最简单的做法的。

请问你知道是什么原因吗??可以通过这样来实现缩放不

支持(0) 反对(0) 粗暴的香蕉 | 园豆:174 (初学一级) | 2012-03-28 10:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册