gpt4 book ai didi

c# - .NET Core 3 WPF 和路径

转载 作者:行者123 更新时间:2023-11-30 12:54:24 25 4
gpt4 key购买 nike

我在 Visual Studio 2019 上使用 .NET Core 3 及其对 WPF 的支持。我创建了一个 Canvas ,并想从代码中绘制一个几何图形。我最初试图通过将 Canvas 的 Path Data 依赖属性绑定(bind)到我的 ViewModel 中的 PathGeometry 来做到这一点,即

<Path Data="{Binding PathGeometry}"/>

然后在我的 ViewModel 中设置 PathGeometry,类似于

    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; }
}

但是,由于 System.Windows.PointSystem.Windows 命名空间中不可用,因此不会构建 View 模型。我认为这是因为我的 View 模型是在纯 .NET Core 3 库中定义的 - 如果我安装预览版 nuget 包 Microsoft.WindowsDesktop.App 然后我将可以访问 PointSystem.Windows 中,应用程序将构建。

现在我很困惑,因为 ArcSegment 的文档说它支持 .NET Core 3.0 Preview 7 Point 的文档也是如此,我正在运行该版本的 .NET Core。那么,为什么我可以构建定义 ArcSegment 的 .NET Core 3 View 模型库,但是一旦我尝试为该 ArcSegment 指定一个 Point > 构建失败?

最佳答案

为了拯救人们点击这里是 GitHub 问题的解决方案

@jdbriaris, the problems with documentation notwithstanding (thanks for bringing this to our attention - its greatly appreciated!), you will not be able to use WPF types without referencing Microsoft.WindowsDesktop.App. This includes System.Windows.Point, as well as System.Windows.Media.ArcSegment.

There are some exceptions to this generality - e.g., some types in System.IO.Packaging namespace - that will be available in Microsoft.NetCore.App, and will also continue to be available in Microsoft.WindowsDesktop.App through type-forwards in WindowsBase.dll (as they used to in .NET Framework).

The general idea is that WPF and WinForms reside in Microsoft.WindowsDesktop.App.

关于c# - .NET Core 3 WPF 和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com