1
7
你覆盖了吗 MeasureOverride 在你的定制画布上?Canvas将始终报告所需的大小(0,0),因此ScrollViewer不会认为需要滚动。 见 this StackOverflow answer 建议使用网格而不是画布,并使用Margin属性进行定位。网格将根据子网格的大小和位置报告其大小,因此ScrollViewer将知道它需要滚动。 更新: ScrollViewer将为其子级提供所需的大小,并且仅当子级大于ScrollViewer时才需要滚动。为了使其正确滚动,您需要报告一个所需的大小,该大小足以包含所有子控件。您可以通过这样覆盖MeasureOverride来实现这一点:
然而,一个更简单的解决方案是利用这样一个事实:网格类已经可以这样测量了。可以使用子元素的Margin属性来精确定位它们,而不是Canvas.Left和Canvas.Top属性。如果你现在正在做
对于画布中的项目,您可以改为
将其放置在同一个单元格网格中的同一位置。 |
2
1
四分之一的回答帮助我解决了这个问题。
我不得不使用
|
Laurie Thom · 使用HTML画布和JS的拖尾图像 2 年前 |
bemol · D3正确缩放/重缩放 2 年前 |
Ghoyos · 这个“如果声明”不应该引起反弹吗? 6 年前 |
user8923822 · 如何从画布中清除Path2D 6 年前 |