2009-12-28 74 views
0

我做了一些自定義附加屬性,使我可以在任何控件上創建「彈出」效果。C#WPF - Global ScrollViewer模式

當一個布爾型DependencyProperty被切換時,它動畫的寬度和/或高度。

是否有一個很好的方法來設置控件中的所有ScrollViewer的滾動條可見性,以在此效果期間隱藏?您可以在動畫中看到一些醜陋的滾動條。

我寧願不必在動畫開始時遍歷視覺樹,然後在動畫完成時再次執行。

編輯:雖然備用解決方案將是不錯的,在這一點上,我寧願綁定到只讀附加屬性名爲IsAnimating來處理設置滾動可見性。

是否有一個全球性的方式來呢?

+0

將Aviad標記爲自他幫助以來的答案,雖然我上面的編輯是我的配合。 – jonathanpeppers 2009-12-30 16:45:27

回答

1

而不是動畫控制自身的寬度,嘗試在動畫開始時固定其寬度,並將其重新設置爲網格,然後爲網格的寬度設置動畫效果。原始視覺不會改變自己的小世界的大小,也不會出現或改變滾動條。

+0

我不明白這是如何工作的。我們需要一切適當的縮放或居中(滾動條除外)。有一些中心控件,漸變,圖像等根據控件寬度進行調整。 – jonathanpeppers 2009-12-28 22:26:47

+0

然後重新配置到ViewBox呢?這隻會在視覺上拉伸所有內容而不會強制佈局更改。 – 2009-12-28 23:21:06

+0

我認爲創建一個名爲IsAnimating的只讀屬性並將其綁定到它可能會更簡單。有沒有全球性的方法來關閉ScrollViewers?否則,我會爲每個我需要的scrollviewer設置綁定。 – jonathanpeppers 2009-12-29 19:34:51