我的应用程序允许用户将一些自定义XAML标记放入文本框中。当我的应用程序加载时,我使用XamlReader.Parse加载树。然后用这些自定义资源覆盖我的MergedDictionaries中的一些资源。如何验证用户提供的自定义XAML中的属性值?
这一直奏效,当用户输入无效的Xaml时,我可以捕捉到XamlParseException。当用户键入不正确的属性值(如边框的颜色)时会出现问题。如果他们输入灰色而不是灰色,则不会出现任何异常,并且用户界面无法显示。事实上,它看起来像应用程序已冻结。
此问题也可以在VS Designer中复制。只需输入不正确的颜色值(忽略智能感知)。 VS中不会有警告。
有什么办法可以捕获这个不正确的属性值吗?
什么是无效的xaml? XamlReader.Parse会在无效颜色上抛出异常,除非可能是无效的xaml位于DataTemplate或类似的内部。 – Evk
它位于DataTemplate中。 – JapNolt