在将 WPF 项目从 .NET Framework 移植到 .NET Core 时,我在 VS2019 (v16.3.10) 中遇到了 XAML-Designer 的问题。当我尝试在样式中使用 EventSetter 时,它不断抛出“XDG0062”错误。代码编译并运行良好,但错误导致设计器中的相关元素被带有 X 的红色圆圈替换,使得设计 UI 变得相当困难。相同的 XAML 在 .NET 框架 4.7.2 中运行良好。项目。
为了追查问题,我从头开始制作了一个 VS 最小项目(WPF .NET Core),问题也出现在这里(请参阅下面的错误和代码)。这似乎是由在样式中使用 EventSetter 引起的 - 不幸的是我不知道为什么。谷歌在没有解决方案的情况下提到了这个问题,Stack Overflow 有一个关于这个错误代码的主题,但是,那里建议的解决方案(删除 VS 缓存)没有帮助。删除 EventSetter 行会删除这两个错误消息。
有没有人有解决这个问题的建议?
完整的错误信息:
第 9 行:“EventSetter.Handler”所需的 XDG0062 非 NULL 值
第 12 行:XDG0062 值不能为空。(参数“typeDescriptorContext”)
XAML
<Window x:Class="XDG0062_test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:XDG0062_test"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Style TargetType="TextBox">
<Setter Property="Height" Value="30"></Setter>
<Setter Property="Width" Value="130"></Setter>
<EventSetter Event="GotFocus" Handler="TextBox_GotFocus" />
</Style> …Run Code Online (Sandbox Code Playgroud)