Hi!
I am about to write an application that will help us plan projects but I'm unsure how to implement the UI. Since it's a good piece of code, I don't want to start off in the wrong direction.
I need an horizontal timeline that I can zoom in to a day-to-day resolution, or zoom out to weekly and monthly resolution. The timeline needs to be able to show about a year and a half at minimum zoom.
Then, a project would be drawn as a thin rectangle on screen that I could move to the right and left on the timeline with the mouse to "schedule" it appropriately. In addition to that, I need to be able to implement some kind of way to change project variables on a day-to-day basis (e.g. change the hardware and teamsize allocation mid-project). If we think about an excel sheet, the columns would hold days/weeks/months and each row would hold a project. I need to be able to have several projects at once and this application will let me see them all at the same time.
A good comparison would be sequencing programs. Here's almost exactly what i'm trying to achieve: (Cubase Project View). You will notice a horizontal ruler at the top that translates to a timeline in my application. Then, each sequence has an horizontal rectangle that places it in the timeline - these rectangles can be moved around with the mouse or be resized. That's exactly the kind of interface i'm looking for.
My question is: In WPF, what's the easiest way of getting this done?
I am currently thinking of the following:
- Timeline is a big question mark to me, I don't know what control I should use to let me zoom in/out easily.
- For projects, I'm thinking of using a big stackpanel. Then, I would insert wide expanders (to let me see project details or not - kinda like track4 of the image above) that would contain a grid. The first cell of the grid would be the project's name, and the second cell would hold the rectangle. To be able to move the rectangle around in relation to the timeline, i'm a bit puzled... Should I make a canvas and position a simple rectangle inside it? Any easy way to somehow link the rectangle and the timeline above, so that the rectangle "knows" his start date and end date?
I've done some simple projects using WPF but none of them required me to create a new UI element, so any lead is appreciated. I hope that my explanations are not too vague...
Thanks!
I am about to write an application that will help us plan projects but I'm unsure how to implement the UI. Since it's a good piece of code, I don't want to start off in the wrong direction.
I need an horizontal timeline that I can zoom in to a day-to-day resolution, or zoom out to weekly and monthly resolution. The timeline needs to be able to show about a year and a half at minimum zoom.
Then, a project would be drawn as a thin rectangle on screen that I could move to the right and left on the timeline with the mouse to "schedule" it appropriately. In addition to that, I need to be able to implement some kind of way to change project variables on a day-to-day basis (e.g. change the hardware and teamsize allocation mid-project). If we think about an excel sheet, the columns would hold days/weeks/months and each row would hold a project. I need to be able to have several projects at once and this application will let me see them all at the same time.
A good comparison would be sequencing programs. Here's almost exactly what i'm trying to achieve: (Cubase Project View). You will notice a horizontal ruler at the top that translates to a timeline in my application. Then, each sequence has an horizontal rectangle that places it in the timeline - these rectangles can be moved around with the mouse or be resized. That's exactly the kind of interface i'm looking for.
My question is: In WPF, what's the easiest way of getting this done?
I am currently thinking of the following:
- Timeline is a big question mark to me, I don't know what control I should use to let me zoom in/out easily.
- For projects, I'm thinking of using a big stackpanel. Then, I would insert wide expanders (to let me see project details or not - kinda like track4 of the image above) that would contain a grid. The first cell of the grid would be the project's name, and the second cell would hold the rectangle. To be able to move the rectangle around in relation to the timeline, i'm a bit puzled... Should I make a canvas and position a simple rectangle inside it? Any easy way to somehow link the rectangle and the timeline above, so that the rectangle "knows" his start date and end date?
I've done some simple projects using WPF but none of them required me to create a new UI element, so any lead is appreciated. I hope that my explanations are not too vague...
Thanks!