/// <summary>番組の縦表示位置設定</summary> protected virtual void SetProgramViewItemVertical() { //時間リストを構築 if (viewCustNeedTimeOnly == true) { var timeSet = new HashSet <DateTime>(); foreach (ProgramViewItem item in programList.Values) { ViewUtil.AddTimeList(timeSet, GetViewTime(LimitedStart(item.Data)), LimitedDuration(item.Data)); } timeList.AddRange(timeSet.OrderBy(time => time)); } //縦位置を設定 foreach (ProgramViewItem item in programList.Values) { ViewUtil.SetItemVerticalPos(timeList, item, GetViewTime(LimitedStart(item.Data)), LimitedDuration(item.Data), this.EpgStyle().MinHeight, viewCustNeedTimeOnly); } //最低表示行数を適用。また、最低表示高さを確保して、位置も調整する。 ViewUtil.ModifierMinimumLine(programList.Values, this.EpgStyle().MinimumHeight, this.EpgStyle().FontSizeTitle, this.EpgStyle().EpgBorderTopSize); //必要時間リストの修正。番組長の関係や、最低表示行数の適用で下に溢れた分を追加する。 ViewUtil.AdjustTimeList(programList.Values, timeList, this.EpgStyle().MinHeight); }