【问题标题】:Using RenderTransform to increase the size of a DataTemplate in WPF在 WPF 中使用 RenderTransform 增加 DataTemplate 的大小
【发布时间】:2010-10-04 02:16:18
【问题描述】:

我正在使用一个 DataTemplate 来为 RenderTransform 设置动画以在鼠标悬停在它上面时增加它的大小。我遇到的问题是,当动画生效时,放大的列表框项目出现在其他项目的后面。有没有办法从我的 DataTemplate 中控制列表框项的 ZIndex 以使其始终位于其他项之上?

【问题讨论】:

  • 在某些情况下我可以重新创建错误。如果我设置了数据模板中唯一的标签的背景颜色,就会发生这种情况。没有设置背景,没有问题。

标签: wpf layout


【解决方案1】:

您可以使用触发器从模板设置模板化元素的 ZIndex。通过 VisualTree 解析找出模板化的父控件,如下所示

{RelativeSource FindAncestor,AncestorType=...

【讨论】:

    【解决方案2】:

    zIndex 仅适用于托管在 Canvas 内的元素。因此,您可以将整个列表框控件包装在画布中,然后将 Canvas.zIndex 设置为 99 作为您用于执行转换的 Trigger 的一部分。但是我无法让它工作。

    唯一可行的其他选项是使用 LayoutTransform 而不是 RenderTransform,因为在放置项目之前计算转换时,这会将其他项目移开。这意味着不需要设置任何 zIndex,但这取决于您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多