我正在使用选框列表水平列表视图。哪些从右向左继续移动。如何从选取框列表的第一个项目和最后一个项目中删除空格?
我的代码是:
double height = canMain.ActualHeight - marqueeList.ActualHeight;
marqueeList.Margin = new Thickness(0, 0, 0, 0);
doubleAnimation.From = -marqueeList.ActualWidth;
doubleAnimation.To = canMain.ActualWidth;
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
doubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(_marqueeTimeInSeconds));
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Right)"));
_storyBoard.Children.Add(doubleAnimation);
_storyBoard.Begin(marqueeList, true)
但是一旦移动完全有空格来,直到再次中的第一项不来。 我想删除第一项之间的空白空间,最后一个项目。(像circullar)
请帮我在这...它的迫切!
感谢乌拉圭回合的答复!但我需要在我的选取框列表上使用鼠标,所以没有其他方式来实现它? – 2010-06-18 15:17:42
是的。正如我在最后一段中提到的,您可以使用自己的逻辑将项目精确地滑到您想要的位置,而不是使用ListView为您完成。我会用自定义Panel子类来做到这一点。自定义面板将有一个属性“Offset”,它可以从0到1或从0到ItemCount计数。该属性将设置InvalidatesArrange标志。然后在你的ArrangeOverride你会使用偏移值,孩子大小等。该计算的细节取决于您的具体需要计算所有孩子的位置。 – 2010-06-18 19:38:44
要使数据绑定与自定义面板一起工作,您可以继续使用ListView并将其ItemsPanel属性设置为ItemsPanelTemplate,其中包含您的自定义面板类的实例,并根据需要绑定其Offset属性。然后,只需动画到这个偏移是绑定的属性,这将导致Offset属性更新和ArrangeOverride重新计算的位置。 – 2010-06-18 19:41:08