2011-11-08 60 views
1

我有一個從WPF擴展工具包縮放控制,使用動畫平滑放大和平滑以及平滑畫布。當我將數據綁定到某些控件的屬性(如Zoom和TranslateX/TranslateY)時,界面非常緩慢,需要時間進行更新。同步WPF動畫與數據綁定

我的問題是 - 有沒有一種方法來臨時禁用的結合,使得動畫和過渡將平穩,只有他們完成將發生我的數據綁定後發生的?我猜有這樣一種方式,但我無法找出如何...

感謝您的幫助鄉親!

代碼:

<Controls:ZoomControl Style="{DynamicResource ZoomControlStyle1}" x:Name="zoomControl" Zoom="{Binding MapModel.ZoomFactor, Mode=OneWayToSource}" 
         TranslateX="{Binding MapModel.CenterXLocation, Mode=OneWayToSource}" TranslateY="{Binding MapModel.CenterYLocation, Mode=OneWayToSource}"> 
+0

我會說,你從中獲益不多。綁定在wpf中非常快,我幾乎可以肯定,這不是你的問題。相反,我會說你的面板內容渲染沉重。或者你在設置綁定位置時做了其他昂貴的事情。你只設置了你綁定的值還是有更多的東西在後臺進行? – dowhilefor

+0

對於內容重的你是對的 - 這是一個裝載了許多'UIElement'對象的畫布。當OnPropertyChanged事件處理程序被觸發時,我正在運行一個小函數來計算應用程序的UI中反映的一些值 –

回答

1

只是一個猜測:使用單向綁定,使變焦或平移X的變化不反射回你的綁定源。

+0

感謝您的回覆,但它沒有幫助。我目前正在使用OneWayToSource綁定(我已經添加了一段代碼片段來演示),它仍然很慢 –

+0

@JonathanPerry:再次繞過:-)使用「OneWay」而不是「OneWayToSource」。 – Fischermaen

+0

這兩種性能方面有什麼區別? –