【问题标题】:How to have Width and Height reflect ScaleTransform and how to ScaleTransform by setting Height and Width?如何让 Width 和 Height 反映 ScaleTransform 以及如何通过设置 Height 和 Width 来进行 ScaleTransform?
【发布时间】:2009-09-10 09:12:02
【问题描述】:

我在 Silverlight 中的画布上使用 ScaleTransform 时遇到问题,画布可以正确缩放,但高度和宽度值始终保持不变。
例如一个 100x100 的画布缩放,所以它看起来 200x200 仍然是 100x100 的高度和宽度值,如何更新这些以反映新的大小。

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

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


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


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

【问题讨论】:

    标签: silverlight xaml layout transform scale


    【解决方案1】:

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


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

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

    【讨论】:

    • 我不知道这一点,是否可以在代码中将高度和宽度更新为高度和宽度的后 ScaleTransform 值?
    • 如果你这样做,它最终会更大,因为新的宽度会被缩放。知道变换后的宽度和高度后,您能给出一些想法吗?
    • 我需要高度和宽度,因为我在 ScrollViewer 中有一个元素,它通过使用元素的高度和宽度来更新滚动条,所以当 Scaled 元素更大但滚动条仍然是“设置" 用于原始高度/宽度,另外还显示了需要更新的高度和宽度值。
    • 感谢您提到 ViewBox,我是从 Silverlight.net 获得的,但会将其标记为答案,因为它确认这可以扩展其自己的内容,而不是添加为我自己的答案.
    猜你喜欢
    • 2012-10-28
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多