我正在使用WPF形状在Canvas上创建六边形(用于游戏地图)。在玩了一些ScrollViewer之后,我决定自己实现地图的滚动和缩放,而不是使用WPF功能,只需使用WPF来获取鼠标滚轮,箭头键等事件。我正在放置(Hex Map) )Canvas作为Dock Panel中的最后一个子项,因此它将获得所有可用的剩余空间。 Dock面板将设置为主窗口的内容。但是我想知道Canvas在我将任何Child放在Canvas上之前有多大,这样我就可以将屏幕放在我想要的Hex上,只添加实际可以看到的Shapes(Hexs)。缩小时,很长一段时间我会完全删除多边形并使用另一种渲染方法,当放大时我会添加更多细节。
有没有任何整洁的方式来获得可用空间?我能想到的唯一方法是希望能够获得窗口的当前尺寸并减去Dock面板外部元素的尺寸,但感觉相当混乱。
答案 0 :(得分:2)
您可以使用ActualWidth
的{{1}}和ActualHeight
属性来确定可用的大小。请确保Canvas
和HorizontalAlignment
设置为VerticalAlignment
。