相关疑难解决方法(0)

WPF中的快速2D图形

我需要在WPF中绘制大量的2D元素,例如线条和多边形.他们的立场也需要不断更新.

我在这里看了很多答案,主要建议使用DrawingVisual或覆盖OnRender函数.为了测试这些方法,我实现了一个渲染10000个椭圆的简单粒子系统,我发现使用这两种方法绘制性能仍然非常糟糕.在我的电脑上,我每秒钟不能超过5-10帧.当你考虑我使用其他技术可以轻松地平滑地抽取50万个粒子时,这是完全不可接受的.

所以我的问题是,我是否违反了WPF的技术限制,或者我错过了什么?还有其他我可以使用的东西吗?欢迎任何建议.

这里是我试过的代码

MainWindow.xaml的内容:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="500" Width="500" Loaded="Window_Loaded">
    <Grid Name="xamlGrid">

    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

MainWindow.xaml.cs的内容:

using System.Windows.Threading;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }


        EllipseBounce[]     _particles;
        DispatcherTimer     _timer = new DispatcherTimer();

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

            //particles with Ellipse Geometry
            _particles = new EllipseBounce[10000];

            //define area particles can bounce around in
            Rect stage = new Rect(0, 0, 500, …
Run Code Online (Sandbox Code Playgroud)

c# wpf performance drawing drawingvisual

37
推荐指数
2
解决办法
2万
查看次数

使用Graphics的WPF画布绘图

  1. 我想问一下是否有可能使用某种类型的Graphics类型来绘制WPF Canvas,提供类似:DrawLine, DrawPath等等的方法(就像在.NET 2中一样).

我知道有很多东西,比如故事板等.但是我打算在后面的代码中完成所有绘图,并且在WPF中只有1个Canvas而没有任何子元素.

  1. 你认为这是个好主意吗?它会顺利吗?

wpf drawing canvas

2
推荐指数
1
解决办法
8204
查看次数

标签 统计

drawing ×2

wpf ×2

c# ×1

canvas ×1

drawingvisual ×1

performance ×1