1

我有一个关于在 Silverlight 中的画布上使用 ScaleTransform 的问题,画布可以正确缩放,但是高度和宽度值始终保持不变。
例如,一个 100x100 的画布缩放后,就高度和宽度值而言,200x200 仍然是 100x100,如何更新这些以反映新的尺寸。

另一个相关问题是如何更改元素的高度和宽度,并适当地调整 Canvas 或 XAML 元素,即。将 100x100 元素设置为 200x200 会使其中的所有内容变大一倍 - 这应该是一个解决方案,其中仅设置元素的高度和宽度以改变比例。

这些问题与同一个问题有关 - 希望有一个适用于 Silverlight 3.0 的解决方案


高度和宽度需要更新,以便当此 Canvas 位于 ScrollViewer 中时,滚动条正确更新为新尺寸 - 如果手动将高度和宽度分配给新的缩放尺寸,则会发生这种情况,但这需要适用于所有尺寸。
相反,我需要另一个画布,当它的高度和宽度发生变化时,里面的元素会被适当地缩放,因为这将是一个可调整大小的图标,可以在同一个或另一个画布上使用。


如果这在 Silverlight 中无法直接实现,那么无论如何都可以在代码中实现此效果,如果不是在 XAML 中,因为如果使用 ImageBrush,这在 WPF 中是可能的,但是 Silverlight 不支持这一点并且需要可扩展的画布和画布缩放时会更新它自己的高度和宽度。

4

1 回答 1

2

UIElement 不知道对其应用的任何转换。所以它的宽度和高度属性不可能反映变换。


一种选择是根本不使用变换,而是使用ViewBox(来自 silverlight 工具包)

视图框缩放其内容以始终填充视图框。

于 2009-09-10T11:26:30.333 回答