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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
使用viewBox缩放SVG(在Dart中)';行不通_Svg_Dart_Viewbox_Dart Html - Fatal编程技术网

使用viewBox缩放SVG(在Dart中)';行不通

使用viewBox缩放SVG(在Dart中)';行不通,svg,dart,viewbox,dart-html,Svg,Dart,Viewbox,Dart Html,我最近开始使用Google Dart(www.dartlang.org)和SVG。 我正在尝试使用一个viewBox来缩放生成的SVG,以适应 StackOverflow上的人已经给了我很多帮助。 我现在可以像这样缩放路径: 但viewBox似乎是为适应缩放而设计的,使用它可以避免我单独缩放svg中的所有路径。这就是我想使用viewBox的原因。 我尝试了以下方法: //获取所创建svg的边界框 Rect bb=path.getBBox(); //为svg创建一个视图框以适应div var vi

我最近开始使用Google Dart(www.dartlang.org)和SVG。 我正在尝试使用一个viewBox来缩放生成的SVG,以适应

StackOverflow上的人已经给了我很多帮助。
我现在可以像这样缩放路径:

但viewBox似乎是为适应缩放而设计的,使用它可以避免我单独缩放svg中的所有路径。这就是我想使用viewBox的原因。
我尝试了以下方法:

//获取所创建svg的边界框
Rect bb=path.getBBox();
//为svg创建一个视图框以适应div
var viewBox=svg.viewBox.baseVal
..x=bb.x
…y=bb.y
…宽度=bb.width
..高度=bb.高度;
//将图像居中放置在div内
svg.preserveAspectRatio.baseVal
…meetOrSlice=PreserveAspectRatio.SVG_meetOrSlice_MEET
..align=preserveSpectratio.SVG_preserveSpectratio_XMIDYMID;
但没有发生缩放。
我该如何解决这个问题?

在写下这个问题并尝试确保在提问之前尝试了任何方法时,我找到了以下解决方案

看起来Dartium(带有本机Dart VM的Chrome)有一个bug(),对viewBox的更改不会直接反映出来

在对viewBox进行更改后添加以下代码将迫使Dartium以某种方式调整大小至所需大小:

    // add an empty ```<g>``` element to force svg resize
    SvgElement g = new SvgElement.tag('g');
    svg.append(g);
//添加一个空的```元素以强制调整svg的大小
SvgElement g=新的SvgElement.tag('g');
svg.append(g);

现在似乎已经解决了,不再需要这种破解。