首页 文章

如何通过设置高度和宽度来使宽度和高度反映ScaleTransform以及如何进行ScaleTransform?

提问于
浏览
1

我有一个关于在Silverlight中使用Canvas上的ScaleTransform的问题,Canvas正确缩放,但是Height和Width值始终保持不变 .
例如一个100x100 Canvas缩放,因此看起来200x200仍然是100x100关于高度和宽度值,如何更新这些以反映新的大小 .

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

这些问题与同一问题有关 - 希望有一个解决方案,可以在Silverlight 3.0中使用


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


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

1 回答

  • 2

    UIElement不知道应用了任何变换 . 因此宽度和高度属性不可能反映变换 .


    一个选项是根本不使用转换,而是使用ViewBox(来自silverlight工具包)

    视图框将其内容缩放为始终填充视图框 .

相关问题