Silverlight scaletransform调整滚动条

时间:2010-07-28 15:40:38

标签: silverlight scrollbars scaletransform

我有以下UI元素层次结构:UserControl> ScrollViewer> Canvas。我在画布上绘制了很多东西,它变得比UserControl大,此时ScrollViewer显示滚动条。到现在为止还挺好。现在我将一个ScaleTransform应用于Canvas(比如2.0,使所有内容都增加一倍)。但是,我的滚动条不能调整,所以我现在只能在我放大的画布上滚动一半。当我将scaletransform应用于ScrollViewer中显示的画布时,如何让我的ScrollViewer滚动条进行调整?

2 个答案:

答案 0 :(得分:3)

您的问题是ScaleTransformRenderTransform而不是LayoutTransform。无论规模如何,它向ScrollViewer报告的大小都是相同的。

我过去用来解决这个问题的一个解决方案是将Canvas嵌套在另一个Canvas中。然后,您可以在代码中更改外部Canvas的大小以反映内部Canvas的实际尺寸。然后ScrollViewer将更新以反映正确的尺寸。您实际上并没有更改内部Canvas的大小,只需更改比例。

答案 1 :(得分:2)