WPF:如何找到Canvas的可用空间?

时间:2011-06-30 17:30:38

标签: c# wpf canvas space

我正在使用WPF形状在Canvas上创建六边形(用于游戏地图)。在玩了一些ScrollViewer之后,我决定自己实现地图的滚动和缩放,而不是使用WPF功能,只需使用WPF来获取鼠标滚轮,箭头键等事件。我正在放置(Hex Map) )Canvas作为Dock Panel中的最后一个子项,因此它将获得所有可用的剩余空间。 Dock面板将设置为主窗口的内容。但是我想知道Canvas在我将任何Child放在Canvas上之前有多大,这样我就可以将屏幕放在我想要的Hex上,只添加实际可以看到的Shapes(Hexs)。缩小时,很长一段时间我会完全删除多边形并使用另一种渲染方法,当放大时我会添加更多细节。

有没有任何整洁的方式来获得可用空间?我能想到的唯一方法是希望能够获得窗口的当前尺寸并减去Dock面板外部元素的尺寸,但感觉相当混乱。

1 个答案:

答案 0 :(得分:2)

您可以使用ActualWidth的{​​{1}}和ActualHeight属性来确定可用的大小。请确保CanvasHorizontalAlignment设置为VerticalAlignment