C# UWP中的System.Windows.Media
最近我写了一个WPF程序来检测图片中的人脸。该程序使用ProjectOxford的API之一,即FaceAPI。 然后我有了一个想法,将我的应用程序从WPF移植到UWP(通用Windows平台)。但是,在开发过程中,我遇到了System.Windows.Media命名空间的问题。在我的UWP应用程序中,我只是没有这样的名称空间,因此我无法访问所有包含的类,例如DrawingVisual、DrawingContext等 以下是WPF中有问题的代码块,需要移植到UWP: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.
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同样,你最终做了什么?你能发布解决方案吗?