2010-07-14 45 views
0

我目前正在爲WPF寫一個選取框控件。該控件由一個ItemsControl組成,其中TextBlock作爲所選的DataTemplate元素。 ItemsControl是Double Animation的目標,它操縱Canvas.Left屬性。雙動畫項檢測

我想要做的是創建一個「循環模式」,這將允許選取框在最後一項滾動到視圖中時動態地將項目添加到其尾部。這樣,選框永遠不會顯示爲空。

如何檢測TextBlock何時作爲動畫結果「滾動」到視圖(實際上變爲可見)?

+0

這是否需要在Silverlight中工作?什麼版本?您是否考慮過Blend 4 SDK中提供的'PathListBox'? – AnthonyWJones 2010-07-14 07:09:10

+0

在畫布上驗證文本框的實際寬度,同時,爲什麼不嘗試在此處使用列表框和項目控件。我想這可能適合你的要求。這裏是一個類似的問題在stackoverflow,http://stackoverflow.com/questions/2796861/scrolling-list-items-in-wpf – sudarsanyes 2010-07-14 08:22:36

+0

任何人都可以幫助我與這些?請。謝謝。 http://stackoverflow.com/questions/21933660/wpf-text-marquee-animation/21934028?noredirect=1#21934028 – 2014-02-21 15:17:55

回答

1

您可能會檢查ItemControlActualWidth屬性是否大於TextBlock的當前值Canvas.Left

要得到改變事件,看看這個SO:How do I handle Canvas.Top change event in WPF?

也許這是保持對已添加到您的選取框的尾部最後一個控制一個引用,這樣就可以刪除有用事件處理程序一旦滾動到視圖中並將事件處理程序附加到TextBlock,然後將其添加到尾部。

這將是很好,能夠畫出一些更好的理解。如果有什麼不清楚的(技術上或概念上)詢問,詢問,詢問... :)