如何以编程方式确定 WPF 图表 Y 轴部分的宽度?

发布于 2024-11-14 17:13:35 字数 278 浏览 1 评论 0 原文

我正在开发一个具有堆叠柱形图的 WPF 应用程序(我正在使用 Silverlight Toolkit 图表功能)。我需要在图表的一部分上动态覆盖一个半透明矩形 - 矩形的大小和位置需要适应 X 轴上数据点的数量。 X 轴值代表天数,天数可能会有所不同,但矩形始终需要覆盖 30 天。

无论如何,我已经弄清楚了大部分内容,但我需要找出图表的 Y 轴标签部分占用了多少宽度,以便我可以在矩形大小和位置计算中考虑到它。

图表有一个“实际宽度”属性,但我不知道如何获取 Y 轴标签区域的实际宽度。有谁知道如何找到这个?

I am developing a WPF application that has a stacked column chart (I'm using the Silverlight Toolkit charting features). I need to dynamically overlay a semi-transparent rectangle over a section of the chart - the size and location of the rectangle needs to adapt to the number of data points on the X axis. The X-axis values represent days, the number of which may vary, but the rectangle always needs to cover 30 days.

In any case, I've figured out most of it, but I need to find out how much width the Y-axis label section of the chart is taking up so that I can take it into account in my rectangle size and location calculations.

There is an "Actual Width" property for the chart available, but I don't know how to get the actual width for just the Y-axis label area. Does anyone know how to find this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ㄖ落Θ余辉 2024-11-21 17:13:35

我能够通过等待图表加载然后使用此处描述的技术来解决这个问题 http://www.scottlogic.co.uk/blog/colin/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/

这里关键是在收到Loaded事件时做处理:

MyChart.Loaded += (sender, e) =>
{
    // MyChart is about to be rendered
    // it's now safe to access the ActualWidth properties of the chart components
    MyRectangle.Left = MyChart.ActualWidth/2;
}

I was able to address this issue by waiting until the chart was loaded and then using the techniques described here http://www.scottlogic.co.uk/blog/colin/2009/03/adding-a-location-crosshair-to-silverlight-charts-again/.

The key thing here is to do the processing when the Loaded event is received:

MyChart.Loaded += (sender, e) =>
{
    // MyChart is about to be rendered
    // it's now safe to access the ActualWidth properties of the chart components
    MyRectangle.Left = MyChart.ActualWidth/2;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文