我已将第三方控件添加到我的应用程序中(参见下面):
http://www.codeproject.com/Articles/240411/WPF-Timeline-Control-Part-I
此控件具有我的应用程序所需的功能,例如从列表框中拖放,拖动结束时间,拖动开始时间和移动幻灯片。
它使用5种不同的C#类:
TimeLineControl(处理实际的TimeLine,例如Items_Changed,绘制线条)。
TimeLineItemControl(处理TimeLine中的项目,例如Move_End,Move_Start)。
TempDataType( TimeLine中项目绑定的属性,例如结束时间,开始时间)。
public class TempDataType : ITimeLineDataItem
{
public TimeSpan? StartTime { get; set; }
public TimeSpan? EndTime { get; set; }
public ImageBrush BackgroundImage { get; set; }
public Boolean TimelineViewExpanded { get; set; }
public String Name { get; set; }
}
ITimeLineManager(不确定这实际用于)。
public interface ITimeLineManager
{
Boolean CanAddToTimeLine(ITimeLineDataItem item);
}
ITimeLineDataItem(我再也不确定这是为了)。
public interface ITimeLineDataItem
{
TimeSpan? StartTime { get; set; }
TimeSpan? EndTime { get; set; }
Boolean TimelineViewExpanded { get; set; }
}
用户将幻灯片从列表框拖到时间轴上。然后当用户点击“播放”时我的实时相机输入将出现,幻灯片的结束时间将随着相机的实时移动而实时移动。
TimeLineControl中的项目的开头和结尾似乎有按钮,这些按钮在这里定义:
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="PART_ContentHostPART_ContentHost" />
<ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Stretch" x:Name="PART_LeftIndicator">
<ContentPresenter.Content>
<Button />
</ContentPresenter.Content>
</ContentPresenter>
<ContentPresenter HorizontalAlignment="Right" VerticalAlignment="Stretch" x:Name="PART_RightIndicator">
<ContentPresenter.Content>
<Button />
</ContentPresenter.Content>
</ContentPresenter>
这些事件似乎已经与它们相关联,因此如果您在TimelineControl内点击或移动某个项目,将会触发某些事件。
当我调试程序以查看手动移动End时会发生什么,它似乎将object sender
传递给传递的方法:
然后将其转换为TimeLineItemControl TimeLineItemControl ctrl = sender as TimeLineItemControl;
当我尝试这样做时,我可以在TimeLine中找到该项目,但它不会让我演员,因为我看起来像这样:
我想知道点击“播放”的时间。按钮,怎么做我得到结束时间来实时移动TimeLineControl。
很抱歉,如果我错过了一些信息,请告诉我,我会直接添加。