有没有办法将Storyboard.Children
扩展为.AddRange
而不只是.Add
?
答案 0 :(得分:4)
使用C# extension methods是提供AddRange方法的便捷方式。请注意,它不会比多次调用Add更快。
以下是一个示例(您可能希望为空值等添加错误检查)。
要使用,您可以:
sb.Children.AddRange(timelineInst1, timelineInst2);
或传递清单。
sb.Children.AddRange(timelineInsts);
其中timelineInst
是一个实现IEnuermable<Timeline>
的列表。
public static class StoryboardExtensions
{
public static void AddRange(this TimelineCollection timeline, IEnumerable<Timeline> timelines)
{
foreach (Timeline t in timelines)
{
timeline.Add(t);
}
}
public static void AddRange(this TimelineCollection timeline, params Timeline[] timelines)
{
if (timeline == null || timelines.Length == 0) { return; }
foreach (Timeline t in timelines)
{
timeline.Add(t);
}
}
}