Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP压延视图设置日期和焦点_C#_User Interface_Uwp - Fatal编程技术网

C# UWP压延视图设置日期和焦点

C# UWP压延视图设置日期和焦点,c#,user-interface,uwp,C#,User Interface,Uwp,我无法在Uwp中将当前日期和焦点设置为日历视图。 当我按下某个按钮上的enter键时,我想让CalendarView可见,选择一个日期并将焦点放在该日期上,这样我就可以使用箭头键选择另一个日期 cal.SelectionMode = CalendarViewSelectionMode.Single; cal.SetDisplayDate(DateTimeOffset.Now.Date); selectedDayItem.Focus(FocusState.Programmatic); selec

我无法在Uwp中将当前日期和焦点设置为日历视图。 当我按下某个按钮上的enter键时,我想让CalendarView可见,选择一个日期并将焦点放在该日期上,这样我就可以使用箭头键选择另一个日期

cal.SelectionMode = CalendarViewSelectionMode.Single;
cal.SetDisplayDate(DateTimeOffset.Now.Date);
selectedDayItem.Focus(FocusState.Programmatic);
selectedDayItem是在处理程序中设置的字段:

private void cal_CalendarViewDayItemChanging(CalendarView sender,
                                             CalendarViewDayItemChangingEventArgs args)
{
     selectedDayItem = args.Item;
}

日历显示当前正在设置的日期,但箭头键似乎不与该单元格对齐。当前选定的单元格(由箭头键移动)似乎是以某种随机方式设置的?我只希望当前选定的单元格位于设置日期的位置。没有要设置的当前选定单元格?

CalendarViewDayItemChangeing
每当日历视图的显示发生更改时,都会调用该事件,并且会为正在显示的每个日期调用该事件。这意味着,例如,当您转到10月份时,它将被调用31次,而您当前的代码将以最后一次更改的日期项目结束(这可能是非常随机的,取决于
日历视图的实现)。相反,您需要检查CalendarViewDayItem.Date的

private void cal_CalendarViewDayItemChanging(CalendarView sender, 
                                             CalendarViewDayItemChangingEventArgs args)
{
    if (args.Item.Date == mySelectedDate)
    {
        selectedDayItem = args.Item;
    }         
}

selectedDayItem
现在将是具有所选日期的实例。但是,如果已经显示所选日期,我预计会出现问题-在这种情况下,此事件可能不会触发。不幸的是,到目前为止,我还没有一个可靠的解决方案。每当日历视图的显示发生变化时,就会调用CalendarViewDayItemChangeing事件,并且会为每个正在显示的日期调用事件。这意味着,例如,当您转到10月份时,它将被调用31次,而您当前的代码将以最后一次更改的日期项目结束(这可能是非常随机的,取决于
日历视图的实现)。相反,您需要检查CalendarViewDayItem.Date的

private void cal_CalendarViewDayItemChanging(CalendarView sender, 
                                             CalendarViewDayItemChangingEventArgs args)
{
    if (args.Item.Date == mySelectedDate)
    {
        selectedDayItem = args.Item;
    }         
}
selectedDayItem
现在将是具有所选日期的实例。但是,如果已经显示所选日期,我预计会出现问题-在这种情况下,此事件可能不会触发。不幸的是,到目前为止,我还没有一个可靠的解决方案