我正在尝试使用 XAML 解析器引用 LinearGradientBrush,但它无法识别对象并且出现异常:
“无法创建未知类型 'LinearGradientBrush'”
是否可以在运行时识别这种类型?
这是我正在使用的代码:
public static class CustomBrushes
{
public static Brush LinGrad_Bevel()
{
StringReader sr = new StringReader(@"<LinearGradientBrush EndPoint='0.5,1' MappingMode='RelativeToBoundingBox' StartPoint='0.5,0'>
<GradientStop Color='#00F7F7F7' Offset='0'/>
<GradientStop Offset='1'/>
<GradientStop Color='Black' Offset='0.741'/>
<GradientStop Color='Black' Offset='0.75'/>
<GradientStop Color='White' Offset='0.25'/>
</LinearGradientBrush>");
XmlReader xr = XmlReader.Create(sr);
return (Brush)XamlReader.Load(xr);
}
}
我真的不喜欢在 XAML 中编程(特别是因为我所做的大部分工作都是依赖于运行时程序流程的设计,但是有些对象在其中制作原型比 C# 更容易,我更希望能够使用这种方法...
我读过我应该在某处包含这样的一行,但老实说,我不明白为什么,如果我把它放在所有“使用”下似乎不起作用
[assembly: XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation" , "System.Windows.Media")]
无论如何,在 C# 代码文件中运行时解析 XAML 的任何帮助将不胜感激。