序列化 GradientBrush

Bab*_*bad 2 c# wpf serialization brush

我正在尝试使用序列化保存 Brush 对象,但出现以下错误:

在程序集“PresentationCore,版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”中键入“System.Windows.Media.LinearGradientBrush”未标记为可序列化

如何将 Brush 对象保存到文件中?

Rep*_*Man 5

尝试这个...

var brush = new LinearGradientBrush(new GradientStopCollection(
    new GradientStop[] { new GradientStop(Colors.Blue, 2.0), new GradientStop(Colors.Red, 3.0) }));

using (var outfile = File.CreateText("Brush.xaml"))
{
    XamlWriter.Save(brush, outfile);
}
Run Code Online (Sandbox Code Playgroud)

产生以下结果:

<LinearGradientBrush xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <LinearGradientBrush.GradientStops>
        <GradientStop Color="#FF0000FF" Offset="2" />
        <GradientStop Color="#FFFF0000" Offset="3" />
    </LinearGradientBrush.GradientStops>
</LinearGradientBrush>
Run Code Online (Sandbox Code Playgroud)