我有一個ContentPresenter在2個狀態(「編輯器」和「查看器」)之間切換。這些狀態具有不同的高度和Content和ContentTemplate屬性的不同值。更改對Storyboard.Completed事件的反應。我們需要BeginInvoke嗎?
在一個狀態改變我通過播放故事板並在反應Storyboard.Completed事件調整控制更改內容/模板的屬性。
它的工作原理基本OK了,但我觀察到偶爾閃爍。在調試器中播放時,我觀察到在Completed處理程序中修改上述屬性可能會導致用戶觀察閃爍的奇怪的屏幕效果(部分屏幕爲空,額外的陰影,線條等)。
但是,每當我推遲使用Dispatcher.BeginInvoke()的ContentPresenter變化,問題似乎消失了。 (更多的測試需要。)
任何人有一個解釋?在網絡上,您會發現許多代碼示例在Storyboard.Completed處理程序中執行UI更改,因此我覺得有點奇怪。
我與多個故事板的工作,並在某處應用程序被使用穿線,第二個故事板不會引發他的事件時承認。我現在正在與背景工作者合作,但這不是一個解決方案。但我可以調試它。在這裏找到一個WPF示例,我認爲它很好:http://stackoverflow.com/questions/80388/wpf-data-triggers-and-story-boards – goldengel