gpt4 book ai didi

wpf - 手动将字符串解析为 XAML 属性

转载 作者:行者123 更新时间:2023-12-04 21:11:01 31 4
gpt4 key购买 nike

XAML 解析器如何将 Foreground="Red"中的字符串“Red”转换为 SolidColorBrush?虽然我知道类型定义了 System.ComponentModel.TypeConverter,但我怀疑 WPF XAML 解析器实际上总是使用这些来将字符串转换为画笔。除了 XamlReader.Load(需要一个有效的 xml 字符串)之外,是否还有任何 XAML API 可以用来解析单个字符串,就好像它是某个属性的属性一样?

最佳答案

XAML 解析器(用于 WPF)实际上确实使用了指定的属性或属性类型的类型转换器。有一些硬编码的快捷方式,但它们是为了性能而不改变语义。仅使用属性信息的解析器可以复制解析器语义(例如 Blend 和 Cider 所做的)。

没有 API 可以完全像 XAML 那样转换值,主要是因为许多类型转换只能在 XAML 解析的上下文中工作。例如,类型转换器可以引用 XAML 文件中定义的命名空间(根据值在 XML 文件中的位置而变化)以及文件的其他环境信息库 URI 库。这些仅在解析 XAML 文件时才真正适用。

最接近的是从类型描述符中请求属性的属性描述符并使用 Converter 属性。这将扫描适当的属性以创建正确的类型转换器。

关于wpf - 手动将字符串解析为 XAML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212341/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com