gpt4 book ai didi

WPF - 装饰器在 View 转换后保持在原始位置

转载 作者:行者123 更新时间:2023-12-01 14:01:17 25 4
gpt4 key购买 nike

我定义了一个控件模板,将其称为 myVal,用于验证 - 然后将其用于样式定位文本框,其中其 Validation.ErrorTemplate 设置为

现在假设 View 中有许多这样的文本框,并且使用 TranslateTransform 和 BeginAnimation 滑动。

结果是 ErrorTemplate 中使用的装饰器在 View 转换时不会跟随文本框的位置 - 而是它们停留在起始位置。但是,一旦我设置了焦点或鼠标移动等事件,装饰器就会相对于文本框正确地重新定位。

如何让装饰器在转换后显示在正确的位置而无需改变焦点?有没有一种方法可以将验证延迟到过渡之后......或者我如何在动画完成后“重新验证”属性?我在某处读到有关调用 invalidatevisual 的信息,但看不到我该怎么做。非常感谢任何帮助。

干杯

最佳答案

两个想法:

尝试在文本框周围或文本框组周围添加一个 AdornerDecorator。这将告诉 WPF 添加另一个层来渲染装饰器。添加一个“更靠近”文本框的层可能会有所帮助。

如果你想告诉装饰层重新渲染自己,那么你可以使用类似下面的代码:

var al = AdornerLayer.GetAdornerLayer(myTextBox);
al.Update();

关于WPF - 装饰器在 View 转换后保持在原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com