【问题标题】:How do I get OnRender to be called when a parent UIElement's RenderTransform is changed?当父 UIElement 的 RenderTransform 发生更改时,如何调用 OnRender?
【发布时间】:2011-02-26 00:10:10
【问题描述】:

我有一个 System.Windows.Controls.Image 派生类,它需要通知父 UIElement 的 RenderTransform 已更改(例如发生缩放)。我希望能够限制内存中保存的内容,以便在只有一小部分可见时不会在内存中保留巨大的图像,以及在图像缩小时降低分辨率。有没有办法强制在我的图像上调用 OnRender?我知道 AffectsRender 可以在父级的 RenderTransformProperty 上设置,但这不会影响到我的图像...有什么想法吗?

【问题讨论】:

    标签: wpf rendertransform


    【解决方案1】:

    对我来说,这感觉有点骇人听闻,但您可以在您的图像上引入一个新的依赖属性,该属性具有 AffectsRender = true。 DP 应该是 object 类型的,并且应该将它绑定到其父级的 RenderTransform。因此,当父级的 RenderTransform 发生变化时,子级的 DP 会使子级重新渲染自己。

    【讨论】:

    • UIElement 没有 RenderTransform 的 DependencyProperty。只需 'public Transform RenderTransform { get;放; ' 当我按照建议执行时,不会触发 OnRender。其他想法?
    • 是的,但是转换的属性是 DP。不是最干净的解决方案,但它会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2013-11-01
    • 2023-03-16
    • 2023-01-25
    • 2012-07-27
    相关资源
    最近更新 更多