首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET中绘制节点网络,屏幕刷新速度太慢

在.NET中绘制节点网络,屏幕刷新速度太慢
EN

Stack Overflow用户
提问于 2012-11-06 02:02:28
回答 1查看 197关注 0票数 0

我正在尝试创建一个.NET应用程序,用于可视化表示节点网络。节点是可以用鼠标拖动并使用Graphics.DrawLine进行连接的Drawing.Rectangle实例。如下所示。

为了避免矩形在拖动时被重新绘制而留下难看的序列,我在组件上调用Graphics.Clear,并在每次调用Mouse_Move时重新绘制每个矩形和线条。但这导致了一个非常丑陋的闪光效果,因为我认为它被调用得不够快……

是否有一些.NET函数或更好的方法来重新绘制此场景,以便刷新看起来更平滑?

我的代码:

代码语言:javascript
复制
    private void NodesPanel_MouseMove(object sender, MouseEventArgs e)
    {
        if (MouseButtons.Left == e.Button)
        {

            if (currentlyClickedNode != null)
            {
                surface.Clear(Color.White);
                drawUnselectedNodes();
                drawConnections();

                if (!ClickedNodeGate) // Clicked on the node
                {
                    currentlyClickedNode.setPosition(e.X - QuestNode.NODE_WIDTH / 2, e.Y - QuestNode.NODE_HEIGHT / 2);
                    currentlyClickedNode.drawMe(surface, penl);
                }
                else // clicked on the gate
                {
                    drawingLine = true;
                    currentlyClickedNode.drawMe(surface, penl);
                    DrawingHelper.DrawLine(surface, penl, currentlyClickedNode.getGatePosition(), new Vector2D(e.X, e.Y));
                }
            }
        }
    }

感谢您所能给予的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-11-06 02:06:51

这是一个非常复杂的主题,有成千上万种不同的方法可以做到这一点。您将不得不学习更多关于Windows图形和窗口子系统的知识。您可能希望从http://shop.oreilly.com/product/0790145369079.do开始

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13237752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档