WPF为网格控件保存“背景”属性的最佳方法

时间:2018-07-24 19:25:06

标签: c# mysql wpf

我有一个为其设置了LinearGradientBrush的网格。 enter image description here 我的目标是将“ Grid.Background”属性保存到MySQL数据库中,并在以后将其检索为模式。

我一直在寻找序列化,但是“背景”类是“未标记为可序列化”。

任何想法我该怎么做?

1 个答案:

答案 0 :(得分:1)

我个人使用XamlWritersXamlReaders,它们允许您在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”,并将其解析为网格。然后,将主网格设置为相同的背景。