gpt4 book ai didi

wpf - Background "Red"中的字符串="Red"如何转换为SolidColorBrush?

转载 作者:行者123 更新时间:2023-12-02 16:10:37 33 4
gpt4 key购买 nike

我想了解下例中WPF是如何将字符串值(Red)转换成对应的SolidColorBrush的?

我们如何对自定义 DependencyProperty 做同样的事情?

<Button Background="Red" />

最佳答案

从字符串到 Brush 的转换是由 BrushConverter 执行的例如,一个 TypeConverter 是这样注册的:

[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.BrushConverter))]
public abstract class Brush : ...

它将自动用于 Brush 类型的任何属性。

假设你有一个像这样的依赖属性

public static readonly DependencyProperty MyBrushProperty =
DependencyProperty.Register(
nameof(MyBrush),
typeof(Brush),
typeof(MyButton));

public Brush MyBrush
{
get { return (Brush)GetValue(MyBrushProperty); }
set { SetValue(MyBrushProperty, value); }
}

以下是开箱即用的:

<local:MyButton MyBrush="Red" />

如果问题是关于自定义属性类型 - 而不是 Brush 类型的自定义属性 - 请参阅其他答案:-)

关于wpf - Background "Red"中的字符串="Red"如何转换为SolidColorBrush?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68129629/

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