小编mor*_*huz的帖子

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万
查看次数

回到Github Desktop中的先前提交

我正在尝试使用GitHub Desktop(即GUI应用程序 - NOT命令行)返回到先前的提交(在同一分支上).我想到的东西是核心功能,因为它是首先使用源代码控制的主要原因.

我可以看到可以恢复提交,但这并不是我想要的,因为它创建了一个新的提交.我只想回过头再次选择,就像我可以跳到另一个分支一样.

这是可能的还是github桌面的限制,我需要使用cmd线?

git github github-desktop

33
推荐指数
4
解决办法
4万
查看次数

Windows Phone 8中的IP地址

我需要找到运行我的软件的手机的IP地址.我本以为这是直截了当的但是在论坛上搜索似乎(令人难以置信的是)在Windows Phone 7中没有这种方法 - 但是,这在Windows Phone 8中有所改变吗?任何帮助,将不胜感激.

ip windows-phone-8

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

c#中的blackmagic SDK

我试图在Windows7 64x和C#+ VS 2010 express上使用最新的SDK(2011年6月)从一张blackmagic强度专业卡中捕获720p.

我已经成功编译并运行了一个在YUV捕获帧的程序,但是在56帧之后捕获停止(回调函数停止被调用).我想知道我是否在这里错过了一些简单的东西?特别是考虑到我几乎就在那里 - 我得到的帧数正确,内容正确,但只有很短的时间.

还有一些可能相关的其他信息:

  • 如果我拔掉相机捕捉不停止
  • 我也试过1080i和PAL,同样的事情发生了
  • 即使VideoInputFrameArrived函数为空(即只有一个帧计数器),也会发生同样的事情

这是代码:


public partial class MainWindow : Window , IDeckLinkInputCallback
{
    private IDeckLinkIterator   _deckLinkIterator;
    private List<IDeckLink>     _deckLinkList = new List<IDeckLink>();
    private IDeckLink           _currentDevice=null;
    private IDeckLinkInput      _deckLinkInput = null;

    private int _width=1280;
    private int _height=720;

    private WriteableBitmap _writeableBitmap =null;

    IntPtr _tempRGBData;
    byte[] _tempRGBDataBytes;

    DispatcherTimer _timer = new DispatcherTimer();

    public MainWindow()
    {
        InitializeComponent();
    }

    Random _random = new Random();

    void _timer_Tick(object sender, EventArgs e)
    {
        _random.NextBytes(_tempRGBDataBytes);

        _writeableBitmap.WritePixels(new Int32Rect(0, 0, _width, _height),_tempRGBData, …
Run Code Online (Sandbox Code Playgroud)

c# sdk video-capture

9
推荐指数
1
解决办法
1万
查看次数