C# .NET核心3 WPF和路径

C# .NET核心3 WPF和路径,c#,.net,wpf,.net-core,C#,.net,Wpf,.net Core,我正在Visual Studio 2019上使用.NET Core 3及其对WPF的支持。我已经创建了一个画布,并希望从代码中绘制一个几何体。我最初试图通过将画布的路径数据依赖属性绑定到ViewModel中的PathGeometry来实现这一点,即 <Path Data="{Binding PathGeometry}"/> 但是,由于System.Windows命名空间中的System.Windows.Point不可用,因此无法生成视图模型。我认为这是因为我的视图模型是在纯.NET

我正在Visual Studio 2019上使用.NET Core 3及其对WPF的支持。我已经创建了一个画布,并希望从代码中绘制一个几何体。我最初试图通过将画布的路径数据依赖属性绑定到ViewModel中的PathGeometry来实现这一点,即

<Path Data="{Binding PathGeometry}"/>
但是,由于
System.Windows
命名空间中的
System.Windows.Point
不可用,因此无法生成视图模型。我认为这是因为我的视图模型是在纯.NET Core 3库中定义的-如果我安装了预览nuget软件包Microsoft.WindowsDesktop.App,那么我将可以访问
System.Windows
中的
,应用程序将生成


现在我很困惑,因为的文档说它支持
.NET Core 3.0 Preview 7
,而我运行的是.NET Core版本。那么,为什么我可以构建我的.NET Core 3视图模型库来定义一个
ArcSegment
,但是一旦我尝试为该
ArcSegment
指定一个
点,我就会得到一个构建失败?

为了节省人们的时间,点击这里是GitHub问题的解决方案

@jdbriaris,尽管有文档方面的问题(谢谢 感谢您提醒我们,非常感谢 如果没有引用,将无法使用WPF类型 Microsoft.WindowsDesktop.App。这包括System.Windows.Point,如下所示 以及System.Windows.Media.ArcSegment

这种普遍性存在一些例外情况,例如,在 System.IO.Packaging命名空间-将在中提供 Microsoft.NetCore.App,并将继续在中提供 Microsoft.WindowsDesktop.App,通过在WindowsBase.dll中键入forwards (就像他们在.NET Framework中使用的那样)

一般的想法是WPF和WinForms驻留在 Microsoft.WindowsDesktop.App


有趣的是,这些文档没有说明.NET Core 3.0支持struct
。。。比
ArcSegment
如何与.NET核心兼容,这可能是文档中的错误吗?@Ackdari是的,有点奇怪。已在github上提出问题:
    public class MyViewModel : ViewModelBase
    {   

        public PathCanvasViewModel()
        {   
            var arcSegment = new ArcSegment
            {
                // INVALID in .NET Core 3 lib
                Point = new System.Windows.Point()
            };

            var pathFigure = new PathFigure();
            pathFigure.Segments.Add(arcSegment);

            PathGeometry = new PathGeometry();
        }

        public PathGeometry PathGeometry { get; }
    }