- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试用 Json.net 序列化 LinearGradientBrush
(System.Windows.Media.LinearGradientBrush) 但没有成功:
var lg = new LinearGradientBrush();
lg.StartPoint = new Point(2,3);
lg.EndPoint = new Point(3.1,0);
lg.GradientStops = new GradientStopCollection(new []{ new GradientStop(Colors.Red, 0),new GradientStop(Colors.White, 1)});
var json = JsonConvert.SerializeObject(lg);
此代码将输出一个包含 "System.Windows.Media.LinearGradientBrush"
的字符串,这显然是错误的。
我尝试使用 xml 序列化,它按预期工作:
var sb = new StringBuilder();
var writer = XmlWriter.Create(sb, new XmlWriterSettings(){ Indent=true});
var ser = new XmlSerializer(lg.GetType(), new []{ typeof(System.Windows.Media.MatrixTransform)});
ser.Serialize(writer,lg);
var xml = sb.ToString();
为什么 json 序列化程序无法序列化 LinearGradientBrush?
最佳答案
Json.NET
库在尝试序列化复杂对象(如 an array)时出现一些问题、LinearGradientBrush 对象或具有高级结构的对象,如字典或类似的东西(对于 LinearGradientBrush,有一个 GradientStopCollection 数据结构可能是导致问题的原因)。
按照 documentation 中的建议,尝试以更可控的方式序列化您的对象。 .
如果这没有帮助,也许可以按照建议为您的对象创建一个自定义转换器 here , 和 use it同时调用方法 SerializeObject()
来序列化您的对象。
关于c# - Json.net LinearGradientBrush序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21089697/
我正在尝试在另一个 LinearGradientBrush 的定义中使用一个 LinearGradientBrush。但我不知道这是否可行,如果可行,我需要知道如何实现。 例如:
我使用此函数通过 LinearGradientBrush 生成一个简单的渐变位图,最后将其另存为文件以用作墙纸。但问题是结果看起来并不“平滑”,它看起来相当“不稳定”,因为您可以看到颜色的线条。 我使
我有一个 LinearGradientBrush 定义如下。我想在我的 xaml 中的某个地方使用它,但我想在这种特殊情况下更改不透明度(仅在这种情况下,而不是在我使用它的所有地方)。有什么想法可以实
我正在使用 Microsoft Vision API 并边学习 C#,Vision 对象的属性之一是图像的“强调色”。 从分析的一系列图像中,我想显示以线性渐变排序的那些颜色——因为这将能够向用户显示
我想用 LinearGradientBrush 填充矩形。对于一些矩形,我会得到一些奇怪的行为。示例: Rectangle rect = new Rectangle( 20, 20, 20, 34 )
考虑来自标准 System.Windows.Forms.Form 的以下代码 protected override void OnPaint(PaintEventArgs e) { base.
.net 中的 LinearGradientBrush(或者甚至整个 GDI+ 中的?)似乎有一个严重的错误:有时,它会引入伪像。 (请参阅 here 或 here - 本质上,线性渐变的第一行是在端
我正在尝试使用 LinearGradientBrush 绘制 WPF 窗口的背景,但是我的代码不起作用。 这是代码 LinearGradientBrush gradientBrush = new L
如何在 xamarin forms 中实现与下面代码相同的渐变效果? 在 WPF 中的效果相同: 我的 Bo
我的 C# UWP 应用程序有问题。 这段代码片段应该在页面底部显示一个透明的覆盖层,但它创建了一个黑色的覆盖层,就像它在现有背
我有一个包含在 Canvas 中的多段线的图表。我想设置多段线的描边,从底部的一种颜色开始,到顶部的另一种颜色结束。我试过这个 xaml:
我有以下代码在我的 winform 上创建一个混合背景: public partial class Aging : Form { protected override void OnPaint
我从这个主题中发现了一个类似的问题GDI+ .NET: LinearGradientBrush wider than 202 pixels causes color wrap-around但解决方案对
我正在创建一个利用 Windows 8、C# 和 XAML 中的必应 map 的应用程序。我目前已经创建了一个 MapPolygon,我希望填充颜色是 LinearGradientBrush 或任何一
我试图实现用渐变背景色绘制表单并用透明度重叠图像。 这个有可能? 我想使用具有透明背景的平铺背景图像并使用自定义线性渐变绘制背景。 最佳答案 我做到了!,我想与您分享我的解决方案(这很容易): 外部帮
给定一个 LinearGradientBrush定义如下:
是否可以通过动画将 Ellipse.Fill 从 LinearGradientBrush 更改为 SolidColorBrush 或更改 LinearGradientBrush 中的 gradient
我必须写几个小的垂直渐变(在循环中),所以我认为重新使用现有的 LinearGradientBrush 会更快(对吗?) 但这不是我所期望的... Drawing2D.LinearGradient
今天我遇到了一个难题。我创建了一个使用 GDI+ 在表单上绘制的应用程序。绘图每秒由计时器触发。 draw 方法使用 for 循环遍历对象集合,如果它们处于特定状态,则绘制它们。 我想使用 Linea
关于我几周前问的这个问题 LinearGradientBrush does not render correctly 考虑以下代码: protected override void OnPaint(P
我是一名优秀的程序员,十分优秀!