gpt4 book ai didi

silverlight - XAML:当子对象的 ScaleTransform 变大时,使 ScrollViewer 显示滚动条

转载 作者:行者123 更新时间:2023-12-04 03:17:35 25 4
gpt4 key购买 nike

我正在为我的 Silverlight 3 应用程序中的某些文档制作一种“打印预览”控件。我在 ScrollViewer 中有一个 Canvas(用于显示文档),并且我有放大/缩小按钮来控制 Canvas.RenderTransform 属性的 ScaleTransform 的 X 和 Y 缩放属性。我希望 ScrollViewer 的滚动条在我“放大”到足以使 Canvas 在 ScrollViewer 区域中不再可见时显示,但似乎它们仅根据 Canvas 本身的宽度/高度显示,无论是否放大。

任何人都可以帮忙吗?

最佳答案

是的,问题是没有LayoutTransform在银光。列出的此问题有一些解决方法 here .

这里的想法是提供一个调整大小的中间 Canvas ,从而调整可滚动区域的大小。例如,如果我有以下 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/>之间和 <Rectangle/>以及 ScaleRect的点击事件在 <Button/> .
ScaleRect sub 只是将矩形缩放 2。然后使用该值更改 sizer WidthHeight ,从而更新 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 *= zoom
End Sub

关于silverlight - XAML:当子对象的 ScaleTransform 变大时,使 ScrollViewer 显示滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com