English 中文(简体)
How can I make WPFToolkit DatePicker highlight only the selected date?
原标题:

I am using the DatePicker from WPFToolkit, but since the current date and the last/first day of the month is highlighted as well, it is confusing which date is actually selected.

How can I make it so nothing is highlighted in the calendar except the selected date?

alt text http://www.deviantsart.com/upload/fhsmni.png

最佳回答

if I understood your question correctly you would like to do following: 1. hide the current date selection 2. make focus rectangle to be set on the selected date when calendar control pops up (or I guess get rid of it)

N1 is easy; you should set IsTodayHighlighted property of the DatePicker to false and it would disappear

N2 is a little trickier. There might be an easier way for fixing this but here s what working for me: DatePicker moves focus to the calendar control right after showing it by calling

calendar.MoveFocus(new TraversalRequest(FocusNavigationDirection.First));

this makes focus rectangle to be shown on the first day of the month; you can fix it by forcing calendar to move focus to the selected date; below is an CalendarOpened event handler for the DatePicker control (datePicker1 in my case). I m using reflection to access private field _calendar of the datapicker control and execute its private method FocusDate

private void datePicker1_CalendarOpened(object sender, RoutedEventArgs e)
{
    FieldInfo fieldInfo0 = datePicker1.GetType().GetField(
        "_calendar", BindingFlags.Instance | BindingFlags.NonPublic);            
    Microsoft.Windows.Controls.Calendar calendar = 
        (Microsoft.Windows.Controls.Calendar)fieldInfo0.GetValue(datePicker1);
    if (calendar != null)
    {
        MethodInfo focusDateInfo = calendar.GetType().GetMethod("FocusDate", BindingFlags.Instance | BindingFlags.NonPublic);
        focusDateInfo.Invoke(calendar, new object[] { datePicker1.SelectedDate });
    }
}

this would make calendar control look cleaner when it pops up; but would still show focus rectangle on the first day of the month if user would start selecting different months

hope this helps, regards

问题回答

暂无回答




相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签