DatePicker在更改Month时抛出异常

Bas*_*Akl 17 c# wpf datepicker

更改DatePicker的月份会引发此异常:

System.Windows.Automation.ElementNotAvailableException:'元素不存在或虚拟化; 如果支持,请使用VirtualizedItem Pattern.

堆栈跟踪:

MS.Internal.Automation.ElementProxy.GetPropertyValue(Int32属性)中的MS.Internal.Automation.ElementUtil.Invoke(AutomationPeer peer,DispatcherOperationCallback work,Object arg)

我在主窗口上创建了一个只有一个DatePicker的简单项目,它给出了相同的异常.

<DatePicker x:Name="datePicker1" Width="150" />
Run Code Online (Sandbox Code Playgroud)

.NET Framework版本:4.6

我发现一个6岁的同一个问题的问题,但没有答案到现在!

编辑:

我尝试了不同的.NET Framework版本:4.5,4.6.1,问题仍然相同.

Mik*_*bel 5

异常似乎取决于启用的Tablet PC 输入服务。如果我不得不猜测,错误发生在 UI 自动化代码中,该代码仅在基于笔的输入可用(并且可能基于触摸的输入)时运行。我之前已经看到该服务会在 WPF 应用程序中引起不良副作用,而且其中大部分问题与 UI 自动化有关。

由于这似乎是“第一次机会”异常(它在框架中的某个地方处理),唯一应该注意的是开发人员将其 IDE 配置为中断所有异常(而不是仅处理未处理的异常)。如果情况确实如此,并且如果这些开发人员实际上并未使用笔或触摸输入功能,那么禁用 Tablet PC 输入服务并继续您的生活可能是最简单的。

或者,您可以将 Visual Studio 配置为不中断该特定异常类型,无论如何它只与 UI 自动化有关。

由于本周办公室的工作进展缓慢,我将花一些额外的时间来研究这个问题。如果我能找到基于代码的解决方案,我会在这里更新我的答案。但是从它的外观来看,UI 几乎完全以编程方式构建,因此这可能不是您可以使用简单的自定义模板来解决的问题。


小智 3

如果你查看微软文档,它会说:

如果元素位于已关闭的对话框中,或者位于已关闭或终止的应用程序中,则可能会引发此异常。

您是否有可能关闭“更改月份”事件的窗口?

  • 感谢你的付出。正如我所说,我创建了一个简单的项目,只有一个 DatePicker,没有更改后面的代码,但异常仍然存在。 (7认同)