C# UWP中的System.Windows.Media

C# UWP中的System.Windows.Media,c#,wpf,uwp,C#,Wpf,Uwp,最近我写了一个WPF程序来检测图片中的人脸。该程序使用ProjectOxford的API之一,即FaceAPI。 然后我有了一个想法,将我的应用程序从WPF移植到UWP(通用Windows平台)。但是,在开发过程中,我遇到了System.Windows.Media命名空间的问题。在我的UWP应用程序中,我只是没有这样的名称空间,因此我无法访问所有包含的类,例如DrawingVisual、DrawingContext等 以下是WPF中有问题的代码块,需要移植到UWP: if (faceRects.

最近我写了一个WPF程序来检测图片中的人脸。该程序使用ProjectOxford的API之一,即FaceAPI。 然后我有了一个想法,将我的应用程序从WPF移植到UWP(通用Windows平台)。但是,在开发过程中,我遇到了System.Windows.Media命名空间的问题。在我的UWP应用程序中,我只是没有这样的名称空间,因此我无法访问所有包含的类,例如DrawingVisual、DrawingContext等

以下是WPF中有问题的代码块,需要移植到UWP:

if (faceRects.Length > 0)
{
    DrawingVisual visual = new DrawingVisual();
    DrawingContext drawindContext = visual.RenderOpen();

    drawindContext.drawimage(bitmapImage,
        new Rect(0, 0, bitmapImage.Width, bitmapImage.Height));

    double dpi = bitmapImage.DpiX;
    double resizefactor = 96 / dpi;

    foreach (var facerect in faceRects)
    {
        drawindContext.drawrectangle(
            Brushes.transparent,
            new Pen(Brushes.red, 2),
            new Rect(
                faceRect.Left * resizefactor,
                faceRect.Top * resizefactor,
                faceRect.Width * resizefactor,
                faceRect.Height * resizefactor
            )
        );
    }

    drawindcontext.close();

    rendertargetbitmap facewithrectbitmap = new rendertargetbitmap(
        (int)(bitmapsource.pixelwidth * resizefactor),
        (int)(bitmapsource.pixelheight * resizefactor),
        96,
        96,
        pixelformats.pbgra32);

    facewithrectbitmap.render(visual);

    facephoto.source = facewithrectbitmap;
}

有什么想法可以取代它吗?

UWP使用了一组新的名称空间——其中大多数都以Windows.*作为前缀,这与WPF的System.*前缀不同,尽管UWP和WPF都使用System.*名称空间。下面是新名称空间的示例。您可能还喜欢阅读,以便更好地掌握UWP基础知识


如注释部分所示,您需要的是一个以Windows开头的名称空间。*并且提供的链接应该可以帮助您纠正错误。

您应该改用它吗?另外,Windows运行时中相应的名称空间是
Windows.UI.Xaml.Media
。然而,它并没有像DrawingVisual和DrawingContext这样的东西。这些类在Windows运行时中不可用。看看.Hey@KonstantinChsherbakov的Windows运行时API文档,我似乎有完全相同的问题。如果我可以问的话,你最终使用了什么API?@kskyriacou同样,你最终做了什么?你能发布解决方案吗?