Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg Dart Element.html转换为小写(不应)_Svg_Dart_Linear Gradients_Dart Html - Fatal编程技术网

Svg Dart Element.html转换为小写(不应)

Svg Dart Element.html转换为小写(不应),svg,dart,linear-gradients,dart-html,Svg,Dart,Linear Gradients,Dart Html,我试图使用Dart(dartlang.org)将(大写G)添加到SVG元素中。结果是一个元素(小写为g)。 浏览器(Firefox和Chromium)不能正确显示这一点,它们需要大写字母G才能使linearGradient正常工作 如何使用Dart添加html片段而不将结果小写? 是否有其他功能用于添加我缺少的(SVG)代码段 到目前为止,我的代码是: SvgSvgElement svg = new SvgSvgElement(); SvgElement defsElement = new S

我试图使用Dart(dartlang.org)将
(大写G)添加到SVG元素中。结果是一个
元素(小写为g)。
浏览器(Firefox和Chromium)不能正确显示这一点,它们需要大写字母G才能使linearGradient正常工作

如何使用Dart添加html片段而不将结果小写?
是否有其他功能用于添加我缺少的(SVG)代码段

到目前为止,我的代码是:

SvgSvgElement svg = new SvgSvgElement();

SvgElement defsElement = new SvgElement.tag('defs');
svg.append(defsElement);

var str = '''
    <linearGradient id="def_2" x1="2557" y1="5281" x2="2603" y2="5253" gradientUnits="userSpaceOnUse" spreadMethod="repeat">
    <stop offset="0" stop-color="#f32b2b" />
    <stop offset="0.75993413" stop-color="#fcc0c0" />
    <stop offset="1" stop-color="#df2323" />
    </linearGradient>
    ''';

Element element = new Element.html(
    str,
    validator: new NodeValidatorBuilder()
      ..allowElement('linearGradient', attributes: ['id', 'x1', 'y1', 'x2', 'y2', 'gradientUnits', 'spreadMethod'])
      ..allowElement('stop', attributes: ['offset', 'stop-color', 'stop-opacity'])
);

defsElement.append(element);
SvgSvgElement svg=new SvgSvgElement();
SvgElement defsElement=新的SvgElement.tag('defs');
追加(defsElement);
var str=''
''';
Element=new Element.html(
str,
验证器:新的NodeValidatorBuilder()
…allowElement('linearGradient',属性:['id','x1','y1','x2','y2','gradientUnits','spreadMethod'])
…allowElement('stop',属性:['offset','stop color','stop opacity'])
);
附加(元素);
谢谢你的帮助,
问候,
亨德里克·扬

经过多次尝试和错误,我终于成功了

似乎
DocumentFragment.svg()
构造函数是专门为此而设计的。
实现这一技巧的代码如下:

// make an element from the use string
DocumentFragment frag = new DocumentFragment.svg(str /*no validator here!*/);

// add to defs element
defsElement.append(frag);

这里是Dart新手,但我怀疑您能否使用Element.html()创建SVG元素。元素将在错误的命名空间中创建。请尝试改用SvgElement.svg()。谢谢。你似乎是对的。