Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CompositionTarger.Rendering(WPF)上的渲染有多差_C#_Wpf - Fatal编程技术网

C# CompositionTarger.Rendering(WPF)上的渲染有多差

C# CompositionTarger.Rendering(WPF)上的渲染有多差,c#,wpf,C#,Wpf,我正在使用WPF创建CAD应用程序。 我想实现如下的渲染循环 public class Editor { private DrawingGroup RenderGroup = new DrawingGroup(); protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); var dc = draw

我正在使用WPF创建CAD应用程序。 我想实现如下的渲染循环

public class Editor
{
    private DrawingGroup RenderGroup = new DrawingGroup();   

    protected override void OnRender(DrawingContext drawingContext)
    {
        base.OnRender(drawingContext);
        var dc = drawingContext;
        Render();
        dc.DrawDrawing(RenderGroup);
    }

    void Render()
    {
         //All Render goes here, for example
         for (int i=0; i<25;i++)
         {
              dc.DrawRenctagle.....
         }    
    }

    public Editor()
    {
        CompositionTarget.Rendering += CompositionTarget_Rendering;
    }   

    void CompositionTarget_Rendering(object sender, EventArgs e)
    {
        Render();
    }
}
公共类编辑器
{
private DrawingGroup RenderGroup=新建DrawingGroup();
受保护的重写void OnRender(DrawingContext DrawingContext)
{
base.OnRender(drawingContext);
var dc=drawingContext;
Render();
dc.DrawDrawing(RenderGroup);
}
void Render()
{
//例如,所有渲染都在这里进行

对于(int i=0;iVery bad,IMO。渲染事件处理程序在每一帧上都被调用,即每秒最多调用60次。
OnRender
通常在必要时被调用。如果要设置动画,请使用。您是否注意到我正在调用just Render。在绘图组中,哪个渲染事件处理程序实际上没有调用OnrRender或Invalidate?这应该是不同的是,我错了吗?我当然错了。但是,你没有解释你到底要在那里做什么,以及为什么常规动画无法实现。总之,“有多糟糕”正在征求意见。对于菜单、按钮、面板、弹出窗口等UI内容,可以使用WPF。但我不会尝试使用WPF编写类似CAD的软件。也是这样。不确定3d部分有多好,但您可以始终使用位图渲染内容(使用gdi+或某些库)并简单地显示位图。不需要渲染器。我直接绘制到drawingContext以获得“更高的性能”,而不是将形状作为子对象使用,因此我不能使用默认的故事板,因为没有触发器、属性或类似的东西。