More clear UI for simulation window

This commit is contained in:
2018-12-23 15:23:57 +08:00
parent 2da0eb3bd1
commit 57e1d4649a
2 changed files with 40 additions and 8 deletions

View File

@ -137,18 +137,38 @@ namespace HFUTCourseSimulation {
uiWeek7.Text = $"{pointer.Month}/{pointer.Day}"; uiWeek7.Text = $"{pointer.Month}/{pointer.Day}";
//create grid //create grid
var query = from item in itemDict.Keys var query = (from item in itemDict.Keys
where item.teachingweek == currentWeek where item.teachingweek == currentWeek
select item; select item).ToList();
foreach (var item in query) { while (query.Count != 0) {
//get data var core = query[0];
var data = itemDict[item]; var data = itemDict[core];
int length = 1;
//check below
if (core.index != 1 && query.Contains(core + new Vector3(0, 0, -1))) {
if (itemDict[core + new Vector3(0, 0, -1)].Name == data.Name) {
//if below have. jump this->move this to the end
query.RemoveAt(0);
query.Add(core);
continue;
}
}
//check follow
while (true) {
if (query.Contains(core + new Vector3(0, 0, length)) && itemDict[core + new Vector3(0, 0, length)].Name == data.Name) {
query.Remove(core + new Vector3(0, 0, length));
length++;
} else break;
}
//create //create
var warp = new Border(); var warp = new Border();
warp.Background = new SolidColorBrush(Colors.LightBlue); warp.Background = new SolidColorBrush(Colors.LightBlue);
warp.CornerRadius = new CornerRadius(5); warp.CornerRadius = new CornerRadius(5);
Grid.SetRowSpan(warp, length);
var nGrid = new Grid(); var nGrid = new Grid();
nGrid.ToolTip = data.Desc; nGrid.ToolTip = data.Desc;
var courseName = new TextBlock(); var courseName = new TextBlock();
@ -157,10 +177,17 @@ namespace HFUTCourseSimulation {
nGrid.Children.Add(courseName); nGrid.Children.Add(courseName);
warp.Child = nGrid; warp.Child = nGrid;
Grid.SetRow(warp, item.index - 1); Grid.SetRow(warp, core.index - 1);
Grid.SetColumn(warp, item.week - 1); Grid.SetColumn(warp, core.week - 1);
this.uiArrangeGrid.Children.Add(warp); this.uiArrangeGrid.Children.Add(warp);
//remove first item
query.RemoveAt(0);
}
foreach (var item in query) {
} }
} }

View File

@ -20,6 +20,11 @@ namespace HFUTCourseSimulation {
public int week; public int week;
public int index; public int index;
public static Vector3 operator+(Vector3 a, Vector3 b) {
return new Vector3(a.teachingweek + b.teachingweek,
a.week + b.week, a.index + b.index);
}
public static bool operator ==(Vector3 a, Vector3 b) { public static bool operator ==(Vector3 a, Vector3 b) {
return (a.teachingweek == b.teachingweek && a.week == b.week && a.index == b.index); return (a.teachingweek == b.teachingweek && a.week == b.week && a.index == b.index);
} }