
有人可以帮忙吗?
解决方法 是的,问题是Silverlight中没有Layouttransform.列出 here这个问题有一些解决方法.这里的想法是提供一个调整大小的中间画布,从而调整可滚动区域的大小.例如,如果我有以下XAML:
<GrID x:name="LayoutRoot"> <GrID.RowDeFinitions> <RowDeFinition Height="200" /> <RowDeFinition Height="25" /> </GrID.RowDeFinitions> <ScrollVIEwer GrID.Row="0" x:name="sc" VerticalScrollbarVisibility="auto" HorizontalScrollbarVisibility="auto" WIDth="200" Height="200" > <Canvas x:name="sizer" WIDth="200" Height="200"> <Rectangle x:name="gradIEntRect" WIDth="200" Height="200"> <Rectangle.Rendertransform> <Scaletransform ScaleX="1" ScaleY="1"/> </Rectangle.Rendertransform> <Rectangle.Fill> <linearGradIEntBrush StartPoint="0,0" EndPoint="1,1"> <GradIEntStop color="Red" Offset="0.1"/> <GradIEntStop color="Yellow" Offset="0.5"/> <GradIEntStop color="Red" Offset="0.9"/> </linearGradIEntBrush> </Rectangle.Fill> </Rectangle> </Canvas> </ScrollVIEwer> <button GrID.Row="1" Content="Multiply by Two" Click="ScaleRect" WIDth="100" Height="25"></button></GrID>
你会注意到我把< Canvas x:name =“sizer”/> < ScrollVIEwer />之间和<矩形/>以及< button />中的ScaleRect的click事件.
ScaleRect子项简单地将矩形缩放2.然后,该值用于更改sizer WIDth和Height,从而更新ScrollVIEwer的滚动条.这是ScaleRect的子项:
Private Sub ScaleRect(ByVal sender As Object,ByVal e As RoutedEventArgs) Dim zoom As Double = 2.0 Dim scaleX = gradIEntRect.Rendertransform.GetValue(Scaletransform.ScaleXProperty) Dim scaleY = gradIEntRect.Rendertransform.GetValue(Scaletransform.ScaleYProperty) gradIEntRect.Rendertransform.SetValue(Scaletransform.ScaleXProperty,scaleX * zoom) gradIEntRect.Rendertransform.SetValue(Scaletransform.ScaleYProperty,scaleY * zoom) sizer.Height *= zoom sizer.WIDth *= zoomEnd Sub总结
以上是内存溢出为你收集整理的silverlight – XAML:当子对象的ScaleTransform变大时,让ScrollViewer显示滚动条全部内容,希望文章能够帮你解决silverlight – XAML:当子对象的ScaleTransform变大时,让ScrollViewer显示滚动条所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)