问题标签 [pathgeometry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2499 浏览

c# - 为什么将字符串路径转换为几何并再次返回会引发 FormatException?

我需要将字符串路径转换为​​Geometry并再次返回。

第一步是转换我的路径:"M 100 100 L 300 100 L 200 300 z". 为此,我使用Geoemtry.Path方法,该方法从指定的字符串创建一个新的 Geometry 实例:

在我的数据结构中,我需要使用以下Geometry.ToString方法存储它的路径:

现在我想使用存储的路径重新创建相同的几何图形,因此我再次使用该Grometry.Parse方法:

问题是我得到一个FormatException
这怎么可能?我该如何解决?

0 投票
2 回答
2245 浏览

c# - 如何将 Point[] 转换为 PathGeometry?

我正在尝试使用数据绑定在 WPF 中制作动画。我正在使用 MatrixAnimationUsingPath 让形状跟随路径。路径在我的 viewModel 中表示为一个数组;观点[]。如何在我的 viwmodel 中绑定我的点属性,以便我可以将它与 MatrixAnimationUsingPath 一起使用。

我已经能够使用值转换器从点创建路径,但我无法使用 MatrixAnimationUsingPath 中的路径。


评论后补充:

之前我对价值转换器不太熟悉。我使用的转换器,我确实在网上找到了。楼主我可以修改吗?

0 投票
2 回答
88 浏览

asp.net - 在 ASP.NET 中使用 WPF 路径数据

有没有办法重新使用以迷你语言创建的路径数据,以便与 ASP.NET 中的 WPF 路径元素一起使用?还是 WPF 独有的 Path 迷你语言?

我有一个 Win8 应用程序,它有许多路径几何字符串,格式为“M10,110 L30,90 M50,110 L30,90”等。我真的很想在新的 ASP.NET 网站中重新使用这些。

0 投票
1 回答
2039 浏览

wpf - WPF 中的不透明蒙版 - 不包括形状

我目前正在创建一个 PDF 查看器,如果用户将光标移动到当前幻灯片(在外部文件中定义)的多个感兴趣区域之一上,幻灯片的其余部分将变暗,突出显示该区域.

目前,这些感兴趣的区域是路径形状,使用该Geometry.Parse()方法使用外部文件中提供的信息创建并存储在List<List<Path>>.

此着色的当前 XAML 如下所示:

使用以下方法更改绘图的几何形状:

这会绘制一个围绕图像区域的形状,然后是给定的形状,然后返回起点。

这种方法的问题在于它创建了非常奇怪的形状,并且不透明蒙版的渐变似乎使一个区域变白而不是使其余区域变暗。

我不太担心从黑暗逐渐转变为形状,只要我能找到一种解决方案,使形状周围的区域变暗但仍然显示下面的幻灯片,我会很高兴地离开。提前致谢。

0 投票
1 回答
7622 浏览

wpf - WPF中的几何图形绘制

我对所有这些几何部分有点陌生,但我可以看到它使我能够基本上画出我想要的任何东西。我找不到一本好的手册来教如何创建我脑海中的任何图像。我真的很希望能找到一些可以为我提取几何数据的画家,但到目前为止还没有运气。

例如,我在网上找到了这个:

你可以从名字上看出它画了什么,但我想知道自己怎么做?

如果有人能指出我的手册/任何类型的程序,那就太棒了!

谢谢。

0 投票
2 回答
9210 浏览

c# - 将路径转换为几何形状

嘿,我试图总结并提出基本问题和我的想法到目前为止还行不通的每个人:S

基本上我的问题是:用户将元素添加在一起,我想根据这些数字创建一个新元素,以便可以为用户定义的元素创建新路径。假设我有一个正方形和一个三角形。用户将其组合成一所房子。现在我想让房子成为用户的元素。为此,我需要元素的路径,如何创建它?

我的想法 使用的图形元素基于路径字符串。因此,我希望将它们转换为以后可以使用的几何元素。我在下面的答案中使用了André Meneses提供的代码,这里复制的代码:

我这样做是为了得到一个几何来遵循这个链接描述的例子。上面的问题是我无法访问新几何元素的 x 或 y 位置,那么如何指定这个位置呢?

对于我认为这个链接可能是一个解决方案的职位,只是还没有得到它的工作吗?:)

完成后,我根据之前的链接将其添加到几何组中,这样我就可以获得新元素的路径。但是几何组的边界为 0。因此,为此,我需要为各个几何元素定义 x 和 y,然后这可能会解决 geomtrygroup 问题,或者我必须在之后查看这个问题:) 问题已经存在太久了:|

下面的文字是老问题和想法

我有一个字符串,我想在后面的代码中将其转换为几何形状。所以我在 Stackoverflow WPF C# Path 上找到了这个:How to get from a string with Path Data to Geometry in Code (not in XAML)

此链接表明可以使用以下代码将字符串转换为路径:

但是解析在 Windows Phone 上不可用。我的其他努力并没有解决这个问题。我尝试使用 pathGeometry 但似乎无法将字符串设置为路径?

所以我的问题是如何在代码中将字符串转换为几何形状,而不是绑定到视图上的元素。

第一步 所以我成功地创建了以下路径

现在我正在尝试将路径转换为几何形状。

额外的

我的想法是与此链接描述的相同。示例显示:

但是我想使用路径形式的任意形状而不是矩形,但仍然能够设置坐标大小等信息。

额外的

我正在考虑定义一个用户控件,它由一个看起来像这样的路径组成:

但是在几何方面无法以任何方式使用它。有人知道使用这种方法吗?任何方法表示赞赏!:)

额外的:)

是否可以从 uielements 中创建几何形状,以便渲染的用户控件可以转换为几何路径?

进步

我找到了这个链接Where I can create a geometry from a path。路径具有属性宽度和高度。

但是我在几何或路径中没有的属性如下:

  1. 画布.左
  2. 帆布.顶部
  3. Canvas.ZIndex(我认为当我将它添加到 GeometryGroup 时这是可能的)

似乎这可以通过 Path.Data 的 bounds 属性来完成。但不是 ZIndex。所以这个还是需要用geometryGroup进行测试,需要将Geometry加入GeometryGroup。

0 投票
1 回答
888 浏览

wpf - 使用 UniversalValueConverter(或任何转换器)将字符串绑定到 Path.Data 的问题

我正在尝试使用字符串属性来更新路径数据,使用 ValueConverter。我认为最简单的方法就是展示它:(我正在使用 WPF 和 MVVM 模式。也使用 MVVM Light)

在我的视图模型中:

这个字符串的目的是我可以用不同的字符串(图标)更新图标(XAML 图标),用于我的应用程序中的不同事件。

在我看来:

我有一个数据网格,其中一列包含以下内容:

我的 ValueConverter 是这样的:

我对价值转换器的工作原理或如何使用它们不太熟悉。但是我为此尝试了来自网络的不同值转换器。(我之前在其他情况下成功使用过值转换器)既喜欢这个 UniversalValueConverter,也喜欢 StringToPathGeometryConverter。没有任何工作。当我运行我的应用程序时,没有显示任何图标。但是也没有抛出异常。

我还尝试将 Icon 属性设置为 PathGeometry,并在没有值转换器的情况下绑定它,但它也不起作用。

有谁知道?

0 投票
1 回答
1844 浏览

wpf - 如何使用 WPF 中的笔画“加宽”几何轮廓的 Stream/PathGeometry?

这对我来说很难解释,所以我将使用图像作为示例: 在此处输入图像描述
我已经定义了一个 StreamGeometry(在代码中)。
当同时DrawingContext.DrawGeometry使用画笔填充和钢笔描边绘制时,几何图形会被钢笔粗细“加宽”。
现在我正在尝试查找 WPF 中是否有一个函数可以返回这个实心加宽几何体(以任何几何体格式)。

到目前为止,我尝试过Geometry.GetWidenedPathGeometry,但这仅返回“勾勒”边框笔笔划的几何图形。它有一个应该填充的孔。

我想我可以使用GetWidenedPathGeometry原始几何图形并进行某种联合,“填充”这个洞。我只是想确定没有更简单或更有效(更快)的方法。
如果几何图形可以保持 StreamGeometry,但GetWidenedPathGeometry将其转换为(以某种方式损坏?)PathGeometry,那将是更可取的。

感谢您的任何建议

0 投票
1 回答
432 浏览

wpf - Hex PathGeometry 填充而不是仅绘制边框

FrameworkElement我有以下方法的后代:

当我将此视觉效果添加到 中时Canvas,我得到的是一个实心六边形,而不仅仅是描边(边框)。我在这里做错了什么导致几何图形填充?

0 投票
0 回答
195 浏览

windows-phone-8 - Windows Phone 8 中的自定义剪辑形状

我正在尝试在 Windows Phone 8 中制作具有自定义形状的剪辑蒙版。

我有形状的路径数据,所以我可以设置

并且网格被正确地裁剪到自定义路径。

我接下来需要做的是应用一个变换,所以它可以移动或缩放等。

我通常会在代码中执行以下操作

然后使用情节提要执行移动。

但是,问题是 gridMain.Clip.Transform 不是 RenderTransform,所以动画不会运行。没有错误,只是没有动画。

如果我的自定义形状是像 EllipseGeometry 这样的内置几何图形,那么我可以在 XAML 中设置一个变换并使用 clipRT 在代码中对其进行动画处理

我知道有一个 PathGeometry,但没有将我的路径数据 M2,54.597 L100.15,101.27 ..... 作为路径标记。它需要设置对我的自定义形状不利的东西。

所以,总结一下。如何设置自定义形状(来自路径数据)以充当剪贴蒙版并且还能够执行平移/缩放等。从代码对其进行转换???

注意:我正在剪辑一个图像,并且知道我可以定义它填充到图像的集合的路径,但这在这里不好,因为如果我移动图像周围的路径将跟随。