2012-02-03 93 views
0

我确定这非常简单,但我不知道如何去做。在WPF中获取画布高度

我在选项卡控件的第二个选项卡中有一个画布。 该标签首先被禁用,直到其他方法被执行,然后该标签被启用,我试图在画布上绘制结果。

这将是很好的能够缩放和居中在画布中的情节,因此我需要得到它的实际尺寸。

问题是,当我第一次加载结果时,画布的选项卡还没有被激活,并且画布的ActualHeight和ActualWidth都是0.我也使画布在两个方向上拉伸,因此宽度和高度是NaN。基本上,我是一个绑定,以获得用于缩放剧情的尺寸......有什么方法可以在切换到选项卡之前获取这些值?

我明显想避免像一个按钮说“点击此处重新调整图表”的跛脚解决方案。使用应该能够切换到选项卡并在那里获得结果。

+0

确实需要禁用第二个选项卡吗?启用该选项卡可能会更容易,只需在画布上显示默认图形(可能是空白图形),直到绘制出某个图形为止。这将避免处理这些情况的复杂性。 – 2012-02-03 06:31:38

+0

这是一个很好的观点。一般来说,我赞成尽可能长时间禁用事物,以减少错误捕获的代码,以便在数据未准备好时用户单击控件时处理错误。我想我可能已经找到了解决canvas问题的解决方法现在虽然。只是要测试它。 – 2012-02-03 06:36:25

回答

2

您需要以某种方式处理Canvas的SizeChanged事件(Event to Command绑定或直接在代码后面)。发生此事件时,请获取画布'ActualHeight和ActualWidth并相应地缩放图形。

+0

这是我在上面评论中提到的解决方法。它似乎工作到目前为止。 – 2012-02-03 06:49:57