关于在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不支持这种并且需要可缩放的画布,和缩放时的画布会更新它自己的高度和宽度。
答案 0 :(得分:2)
UIElement不知道应用了任何变换。因此,宽度和高度属性不可能反映变换。
一个选项是根本不使用转换,而是使用ViewBox(来自silverlight工具包)
视图框将其内容缩放为始终填充视图框。