gpt4 book ai didi

windows-phone-7 - 更改 UI 以响应 Storyboard.Completed 事件。我们需要 BeginInvoke 吗?

转载 作者:行者123 更新时间:2023-12-04 19:34:32 26 4
gpt4 key购买 nike

我有一个在两种状态(“编辑器”和“查看器”)之间切换的 ContentPresenter。这些状态具有不同的高度和不同的 Content 和 ContentTemplate 属性值。

在一次状态更改中,我通过播放 Storyboard 来调整控件的大小,并响应 Storyboard.Completed 事件,我更改了 Content/Template 属性。

它基本上工作正常,除了我观察到偶尔闪烁。在调试器中运行时,我观察到在 Completed 处理程序中修改上述属性可能会导致奇怪的屏幕效果(屏幕部分空白、额外的阴影、线条等),用户会观察到这些效果是闪烁的。

但是,每当我使用 Dispatcher.BeginInvoke() 推迟 ContentPresenter 更改时,问题似乎就消失了。 (需要更多测试。)

谁有解释?在网络上,您会发现许多在 Storyboard.Completed 处理程序中执行 UI 更改的代码示例,因此我觉得它有点奇怪。

最佳答案

我怀疑这可能更多是由于时间的原因,而不是需要在 UI 线程上。在更改内容/模板属性而不是使用 Dispatcher.BeginInvoke() 之前尝试 sleep 一秒钟左右。如果闪烁消失了,那么当内容在 Storyboard期间忙于调整自身大小时尝试更改这些属性可能是罪魁祸首 - 也许分配固定大小或以其他方式在 Storyboard期间禁用不断调整大小会有所帮助。但这只是一个猜测,我必须看到一个样本才能真正弄明白。如果您能制作一个小样本来重现它,我很乐意查看。

关于windows-phone-7 - 更改 UI 以响应 Storyboard.Completed 事件。我们需要 BeginInvoke 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925251/

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