C# WPF中图形的判断?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WPF中图形的判断?相关的知识,希望对你有一定的参考价值。

如 现有一个rectangle类 高宽30 30 另一个同类 高宽10 10 如何判断两个图形碰到了
感谢

你可以直接用Rect结构体, (或者在你的rectangle类里使用), 它有一个IntersectsWith() 方法可以直接判断两个矩形是否有交集 参考技术A System.Windows.Rect.IntersectsWith
Rect rect1 = new Rect(left1, top1, widht1, height1);
Rect rect2 = new Rect(left2, top2, widht2, height2);
bool intersects = rect1.IntersectsWith(rect2);
参考技术B 你想要判断一个东西是不是不是对的,那你应该判断它的这个总体的这个图形,如果是对的话,那所有东西都是对的。

带有 Directx 11 的 WPF

【中文标题】带有 Directx 11 的 WPF【英文标题】:WPF With Directx 11 【发布时间】:2012-12-18 21:46:13 【问题描述】:

现在我有一个用 c++/cli 编写的包装器,用于 c#(WPF)。这个包装器将原生 c++ 图形引擎包装成 c# 可理解的代码。但这不是问题(等等...)。所以在 WPF 中我有一个 Windows 控件(是的,这是可能的),我从(HWND)接收句柄。所有这一切都很棒,并且帧正在渲染,唯一的问题是性能。渲染触发如下:

        ...
        System.Windows.Media.CompositionTarget.Rendering += new EventHandler(Render);
    

    private void Render(Object sender, EventArgs e)
    
        EngineWrapper.RenderFrame();
    

所以 fps 非常低,这意味着对 Render() 的调用率非常低(因为我的应用程序最初是在 MFC 中,帧率要高得多!)。所以我问你,有什么办法可以提高这个吗?一种新的方式,另一个线程?(一定有可能……)

编辑: 我通过以下方式创建 Windows 控件:

        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();

        System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel();

        host.Child = panel;

        this.RenderCamera_WorkareaGrid.Children.Add(host);

谢谢

【问题讨论】:

您是否考虑过使用 SlimDX 或 SharpDX(.NET DX 包装器)?你得到的帧率是多少? 您是否对代码进行了分析以查看哪个部分现在变慢了? Alan:我现在对 .NET DX 包装器不感兴趣... ananthonline:还没有,我该怎么做? @MiguelP 你称之为“差”的帧率是多少?您是否使用 D3DImage 进行互操作?我们使用 Window Forms Control 句柄进行互操作,而不是 Render() 我很困惑您如何使用 WPF 中的 Windows 控件句柄 Render()? 【参考方案1】:

您需要访问用于渲染场景的表面,并将其句柄发送到 WPF 系统的 D3DImage。看看 codeplex 是如何制作的。

【讨论】:

以上是关于C# WPF中图形的判断?的主要内容,如果未能解决你的问题,请参考以下文章

C# 中winform判断URL打开是不是正常

C# webbrowser怎么判断登录是不是成功?

C# WinForm获得主窗体——如何判断哪个是主窗体

关于C#中wpf方面的知识,求解

dotnet C# 使用 EqualityComparer 提升泛型值类型相等判断性能

C#如何判断winform窗口里面的所有控件都没有点击