使用Qooxdoo我想有一个窗口,只包含一个HTML SVG元素。这个SVG将使用在可调整大小的窗口中的全部可用大小。当窗口变得太小时,自动滚动条将出现,以便SVG内容仍然完全可见(当用户相应地滚动)我怎样才能做到呢?
avwztpqn1#
我的解决方案的一些关键时刻是:
qx.ui.embed.Html
qx.ui.container.Scroll
minWidth
minHeight
allowShrinkX: false
allowShrinkY: false
下面的代码包含了上面提到的所有内容:
const win = new qx.ui.window.Window(); win.setLayout(new qx.ui.layout.Grow()); const svg = '<svg width="100%" height="100%"><circle cx="50%" cy="50%" r="50%" stroke="black" stroke-width="3" fill="red" /></svg>'; const svgWidget = new qx.ui.embed.Html(svg); svgWidget.set({allowShrinkX: false, allowShrinkY: false, minWidth: 200, minHeight: 200}); const scroller = new qx.ui.container.Scroll().set({width: 300, height: 300, decorator: "main", padding: 5}); scroller.add(svgWidget, {width: "100%", height: "100%"}); win.add(scroller); win.open(); const doc = this.getRoot(); doc.add(win, { left : 100, top : 50 });
1条答案
按热度按时间avwztpqn1#
我的解决方案的一些关键时刻是:
qx.ui.embed.Html
作为svg标记的 Package 器qx.ui.container.Scroll
使容器或微件可滚动minWidth
和minHeight
停止减小其大小allowShrinkX: false
和allowShrinkY: false
关闭SVG容器(qx.ui.embed.Html)的收缩下面的代码包含了上面提到的所有内容: