使用viewBox缩放SVG(在Dart中)';行不通
我最近开始使用Google Dart(www.dartlang.org)和SVG。 我正在尝试使用一个viewBox来缩放生成的SVG,以适应使用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
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);
现在似乎已经解决了,不再需要这种破解。