Latest 8.8 release of DotNetBar for Windows Forms includes all new Year view for Scheduling/Calendar control. In this view you can see all calendar days with appointments for whole year. This is what it looks like:

Note the marked dates on calendar. They indicate that there are appointments on those dates. When day is clicked control will automatically take you to the view you specify to see details for that day or you can choose to execute any custom action you wish.

CalendarView.YearViewStartDate and CalendarView.YearViewEndDate will determine the number of months displayed in the calendar. The maximum number of displayable months is currently set to 120. Why 120 you might ask? Why is winter cold? 🙂

Month days that have CalendarItems associated with them will, by default, have their date text displayed in Bold.  The background coloring of these items can be set to several different built-in styles (via the CalendarView.YearViewAppointmentLinkStyle property).  Day cells that do not have associated CalendarItems are, by default, displayed in the normal text and background, color and style.

There are two types of day cells displayed in the calendar months – those that have associated CalendarItems (Appointments or CustomCalendarItems), and those that do not.

Day cells that have CalendarItems associated with them will, by default, have their date text displayed in Bold.  The background coloring of these items can be set to several different built-in styles (via the CalendarView.YearViewAppointmentLinkStyle property).

In the above example, cells with associated CalendarItems are being displayed in the blue diagonal gradient with bolded text.  All others, displayed in their normal defaults, signify no associated CalendarItems.

CalendarView.YearViewAppointmentLink – This property establishes how the user interacts with those cells that contain Appointments (or CalendarItems in general).  The possible settings for this property are defined in the eYearViewDayLink enum, and are as follows:  “None”, “Click”, “CtrlClick”, and “DoubleClick”.  You can combine these such that, for instance, a Click or a DoubleClick will cause the link to be activated.   The default is eYearViewDayLink.Click. This can be done like the following:

CalendarView.YearViewAppointmentLink = (eYearViewDayLink.CtrlClick | eYearViewDayLink.DoubleClick);

CalendarView.YearViewNonAppointmentLink – This property establishes how the user interacts with those cells that do not contain Appointments (or CalendarItems in general).  The possible settings for this property are, again, defined in the eYearViewDayLink enum, and may be combined to give the desired interaction.  The default is eYearViewDayLink.DoubleClick.

When a selection link is established (via the means established in the above YearViewApplintmentLink and YearViewNonAppointmentLink properties), you can have any Calendar display view activated by default when the corresponding day cell is selected.  This can be accomplished via the CalendarView.YearViewLinkView property.

The CalendarView.YearViewLinkView property sets which view (None, Day, Week, Month, or TimeLine) is “linked” to the calendar day cell selection. When enabled, clicking (or hitting enter or the Spacebar) on a cell will cause the LinkView to be activated and positioned at the day/time previously selected in the YearView.  The default is eCalendarView.Day.

There are many other very useful customization options and you can find all details in Knowledge Base Schedule control article under “Year View” section.

Schedule control in DotNetBar includes 5 different views for your appointments and each of them can be customized to fit your need. I think this is one of the best Schedule controls available. We are working to make it the best Schedule control in the world and we will not stop until it is. The plot is thickening 🙂 Stay tuned.

Tagged with:

Today’s DotNetBar for WinForms update, contains improvements to Schedule control that many of you have been asking for. Now you can control time display in Day/Week view. Default view shows the working and non-working hours as specified on CalendarModel.WorkDays.WorkStartTime/WorkEndTime, i.e. you see 24 hours or whole day. Here is image that shows default view, notice that non-working hours have gray background:

But if you set CalendarView.ShowOnlyWorkDayHours=true you will see only working hours displayed on calendar. This image shows that, notice that non-working hours are not visible:

Images on appointments

Latest release also adds easy way to assign images to appointment. On each model Appointment object there are two properties you can use to do so:

  • Appointment.ImageKey – Specifies the key of the image in the ImageList that you assign to CalendarView.Images property.
  • Appointment.ImageAlign – Specifies the alignment of the image inside of appointment.

Here is screen-shot of two appointments with images assigned:

Yellow appointment has default image alignment, which is top-left, and blue appointment has bottom-right image alignment.

Release with these new features is available now.

Tagged with:

Today we released weekly update to DotNetBar for WinForms and Schedule control includes very nice new functionality that I would like to show to you.

The CalendarView control has the ability to display any number of TimeIndicators in the Day, Week, and TimeLine views.  TimeIndicators are used to give feedback to the user as to either the current system time, or a user designated time.  Here is an example of what a set of 3 different TimeIndicators could look like (click image for full size image):

DotNetBar Time Indicator in Calendar/Schedule Control

The CalendarView control has a default TimeIndicator object available for your configuration and use.  You can also define as many as you need and add them to the CalendarView.TimeIndicators collection.  Each TimeIndicator object has the following properties available for user configuration:

IndicatorTime: A DateTime value that signifies the root starting display time for the Indicator.

  • IndicatorTimeOffset: A TimeSpan value that signifies a time offset from the set IndicatorTime.  The Indicator will be displayed at IndicatorTime plus IndicatorTimeOffset.
  • IndicatorArea: The display area designation, as defined by eTimeIndicatorArea.
    • eTimeIndicatorArea.Header:  The Indicator is displayed only in the associated Time Header (green example in above figure).
    • eTimeIndicatorArea.Content:  The Indicator is displayed only in the view Content area (pink example in above figure).
    • eTimeIndicatorArea.All:  The Indicator is displayed in both the Time Header and view Content area (gold example in above figure).
  • IndicatorSource:  Designates the source of the IndicatorTime, as defined by eTimeIndicatorSource.
    • eTimeIndicatorSource.SystemTime:  IndicatorTime is updated by the System time at 1 minute intervals (if enabled, see below).
    • eTimeIndicatorSource.UserSpecified:  IndicatorTime is specified and maintained by the user.
  • Visibility:  Designates the Indicator’s visibility, as defined by eTimeIndicatorVisibility.
    • eTimeIndicatorVisibility.AllResources:  Indicator is displayed on all available views (gold example in above figure).
    • eTimeIndicatorVisibility.SelectedResources:  Indicator is displayed only on the currently selected view (pink example in above figure).
    • eTimeIndicatorVisibility.Hidden:  Indicator is hidden (default).
  • BorderColor:  Designates the leading edge border color.
  • IndicatorColor:  Designates the Gradient color of the Indicator.
  • Thickness:  Designates the thickness of the Indicator (default is 4).
  • Enabled:  Indicates whether automatic IndicatorTime updates are enabled (only utilized when IndicatorSource is SystemTime).

To utilize the default CalendarView TimeIndicator, you need only access it via CalendarView.TimeIndicator.  All you need do is to set the initial IndicatorTime and its Visibility to either AllResources or SelectedResources.

CalendarView.TimeIndicator.IndicatorTime =  DateTime.Now;
CalendarView.TimeIndicator.Visibility =  eTimeIndicatorVisibility.AllResources;

Here are code examples showing how to create the pink and green TimeIndicators as shown in the above figure:

TimeIndicator ti = new TimeIndicator();
ti.Thickness  = 10;
ti.IndicatorTimeOffset = new TimeSpan(2, 15, 0);
ti.BorderColor  = Color.Green;
ti.IndicatorColor = new ColorDef(new Color[] {  Color.Empty,
                    Color.GreenYellow, Color.Green },
                    new float[] { 0f, .5f, 1f  });
ti.Visibility = eTimeIndicatorVisibility.AllResource;
ti.IndicatorArea  = eTimeIndicatorArea.Header;
ti  = new TimeIndicator();
ti.Thickness = 20;
ti.IndicatorTimeOffset  = new TimeSpan(-2, 15, 0);
ti.BorderColor = Color.HotPink;
ti.IndicatorColor  = new ColorDef(Color.Empty, Color.Pink);
ti.Visibility =  eTimeIndicatorVisibility.SelectedResource;
ti.IndicatorArea =  eTimeIndicatorArea.Content;

TimeIndicators can be as subtle or as “daring” as you like:

DotNetBar Calendar/Schedule control time-marker, indicator custom appearance

The above was created with the following code:

ti = new TimeIndicator();
ti.Thickness = 40;
ti.BorderColor  = Color.MidnightBlue;
ti.IndicatorColor = new ColorDef(new Color[]
                    {  Color.Empty, Color.AliceBlue,
                    Color.DeepSkyBlue, Color.DarkSlateBlue },
                    new float[] { 0f, .15f, .55f, 1f });
ti.IndicatorArea =  eTimeIndicatorArea.Content;
ti.Visibility =  eTimeIndicatorVisibility.AllResources;

This covers the new time-marker functionality in our schedule control. Hope you find it useful. Stay tuned for more.

Tagged with:

We just released DotNetBar for WPF 5.5 which includes all new Timeline view for calendar/schedule control. Timeline view is designed to display continuous schedule for one or multiple resources. You can optionally display condensed (bird-eye) view of the schedule below each timeline that can be used for easy schedule “surfing”.

Here is screen-shot of the Timeline view:

Time-slot duration in this view is fully customizable. In screen-shot above we used 30 minutes as single time-slot duration, but you can set it to any value you want, even whole day or couple of days. That way you can zoom in or out of the schedule view. This makes this view very useful for representing for example factory production schedule.

Another commonly asked for feature was hit-testing. In this release we include CalendarView.HitTest method that will give you plenty of information about the point inside of the calendar control.

If you have DotNetBar for WPF license you can download latest release on Customer Only web site. There is also full functional trial version available.

Tagged with:

In latest release of DotNetBar for WPF we just published we added the ability to set fixed size for single resource in multi-resource view. By default we use variable size so all the resources are resized to fit whatever width is available:

WPF Schedule/Calendar control multi-resource variable size

With new CalendarView.ViewSize property you can specify the width for single resource. Every resource displayed will use that width and you will see horiz0ntal scroll-bar appear:

DotNetBar WPF Calendar/Schedule multi-resource view fixed size

This is useful if you display many resources say anything over 10 since they would not be able to effectively fit on screen…

Hope you like these new additions, we are working on some new exciting features that I hope to share soon.

Tagged with:

New version of DotNetBar for WPF 5.3 is just around corner and based on your requests we’ve included the option for fine control over the time slot size in our Schedule control. Time slots in Day and Week views by default have the 30 minute duration. This is best visible in image below:

WPF Schedule Time Slot

With new release though, you can change the time slot duration by simply setting TimeSlotDuration property. Here is how the same calendar view looks like with TimeSlotDuration is set to 10 minutes:

Schedule Control Time Slot Set To 10 Minutes

There is another new option included that goes hand in hand with time slot control; Time slot labels. Now you can set LabelTimeSlots property to true to label each time slot with its starting time like so:

Labels for Schedule Control Time Slots

Wpf-Schedule is I believe, the best WPF schedule control available and with these new features we’ve added there is even more usage scenarios it can be used for. It is reliable and tested and used every day. If you are in need of a great Schedule control you must try it out.

Tagged with:

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog