我有一个为其设置了LinearGradientBrush的网格。 我的目标是将“ Grid.Background”属性保存到MySQL数据库中,并在以后将其检索为模式。
我一直在寻找序列化,但是“背景”类是“未标记为可序列化”。
任何想法我该怎么做?
答案 0 :(得分:1)
我个人使用XamlWriters和XamlReaders,它们允许您在GUI中编写和读取XAML。像这样:
XAML:
<Grid x:Name="mainGrid">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF187F25" Offset="0"/>
<GradientStop Color="#FF17FF1A" Offset="1"/>
<GradientStop Color="#FF690909" Offset="0.421"/>
</LinearGradientBrush>
</Grid.Background>
</Grid>
C#
using System.Windows.Markup;
保存
string BackgroundString = XamlWriter.Save(mainGrid);
然后可以将该字符串作为纯文本存储在数据库中。
阅读
Grid tempGrid = XamlReader.Parse(BackgroundString) as Grid;
mainGrid.Background = tempGrid.Background;
然后从数据库中读取字符串“ BackgroundString”,并将其解析为网格。然后,将主网格设置为相同的背景。