public static void DrawSwitch(this DrawingContext dc, StageVm stageVm, KeyPairVm keyPairVm, double stageRenderWidth, double stageRenderHeight) { var pen = stageVm.SwitchLinePen(keyPairVm, stageRenderWidth); var renderX = stageVm.SectionRenderX(keyPairVm.StageSection, stageRenderWidth); var renderYLow = stageVm.KeyRenderYl(keyPairVm.LowKey, stageRenderHeight); var renderYHigh = stageVm.KeyRenderYh(keyPairVm.HiKey, stageRenderHeight); var pointLow = new Point(renderX, renderYLow); var pointHigh = new Point(renderX, renderYHigh); dc.DrawLine(pen, pointLow, pointHigh); }
public static Point GetSortableItemPosition(this StageVm stageVm, SortableItemVm sortableItemVm, double stageRenderWidth, double stageRenderHeight) { if ((stageRenderHeight <= 0) || (stageRenderHeight <= 0)) { return(new Point(0, 0)); } if (sortableItemVm.StagePos == StagePos.Missing) { return(new Point(0, 0)); } var renderY = stageVm.KeyRenderYc(sortableItemVm.KeyLinePos, stageRenderHeight); var radius = stageVm.RenderHeight(stageVm.StageVmStyle.KeyLineThickness * 1.5, stageRenderHeight); var renderX = 0.0; switch (sortableItemVm.StagePos) { case StagePos.Left: renderX = radius * -1.2; break; case StagePos.Center: renderX = stageVm.SectionRenderX(sortableItemVm.StageSection, stageRenderWidth); break; case StagePos.Right: renderX = stageRenderWidth - radius * 1.2; break; default: break; } return(new Point(renderX, renderY)); }