使用 WPF几何,是否有任何方法可以在点之间创建线,给定一个简单的几何作为线型?我知道有可能做出这样的界限:
-- -- --- --
但我想使用任何简单的几何体(例如:'^'符号)来制作线条。所以我想要的是这样的东西:(线可能不一定是水平的或垂直的):
^^^^^^^^^^^^^^^^^
*****************
注意:我不想与某些字符对齐。我想使用任意几何形状(例如:开始形状,三角形或任何其他几何形状)来做它。换句话说,我想沿两点之间的线性路径重复一些几何。因此,这些简单的几何形状可能会以某种方式旋转,以跟随线...
答案 0 :(得分:1)
如果我理解正确,您希望基本上使用*
或^
或!
作为一行。而不是使用正常的实线,破折号,点线等,你想使用物理角色吗?但是你希望这些角色成为Geometry
对象。
您可以执行以下操作:
// Create a line of characters.
string lineString = "^^^^^^^^^^^^^^";
// Create Formatted Text, customize accordingly.
FormattedText formatText = new FormattedText(
lineString, CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface("Arial"), 32, Brushes.Black);
// Set the Width and Height.
formatText.MaxTextWidth = 200;
formatText.MaxTextHeight = 100;
// You can obviously add as many customization's and outputs of your choice.
现在我知道这不是你想要的,你希望上面的string
在Geometry
中行动。要做到这一点;你只需要这样做:
// Build Geometry object to represent text.
Geometry lineGeometry = formatText.BuildGeometry(new System.Windows.Point(0, 0));
// Tailor Geometry object that represents our item.
Geometry hGeo = formatText.BuildHighlightGeometry(new System.Windows.Point(0, 0));
现在基本上你已经构建了一个代表“^^^^^^^^”的Geometry
对象。
希望我理解正确,我不知道这是否能解决你的问题。
答案 1 :(得分:1)
我认为这是一个有趣的问题,但我无法在stackoverflow文本框中找到令人满意的答案,所以我在github上传了一个建议的解决方案:
https://github.com/mrange/CodeStack/tree/master/q14545675/LineGeometry
我不是声称这是对您的问题的100%解决方案(对于一个我不是所有要求的100%)但是如果你看一下它或许可以改进一些东西。
除非我对你要找的东西错了。