我目前正在开展一个项目,我将ItemsControl绑定到玩家列表以显示记分板。当列表更新并且玩家更改时,我希望玩家滑动到新位置。
这已经在每个元素上使用了TranslateTransform属性,但只有大约15-20 FPS(每帧~50-70ms),所以你看它不流畅。这是因为要重新绘制ItemsControl,我必须调用NotifyOfPropertyChange方法,以便重新绘制itselft,但它会重新绘制所有元素。
由于它只是一个显示板,我无法处理用户交互,但必须以纯代码为基础。
所以我的问题是,有没有办法重新绘制ItemsControl的特定元素,还是有另一种显示列表的方法,我可以逐个访问这些成员?
<Grid Width="500" Height="120">
<Grid.RenderTransform>
<TranslateTransform X="{Binding TransformHorizontal}" Y="{Binding TransformVertical}" />
</Grid.RenderTransform>
</Grid>
这是我用于绑定到元素属性TransformHorizontal和TransformVertical的每个元素的周围网格,我可以为每个元素单独设置。