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