6

有没有办法在点之间画线,给定一个简单的几何作为线条样式,使用WPF 几何?我知道可以制作这些线条:

-- -- --- --

但我想使用任何简单的几何图形(例如:'^' 符号)来制作线条。所以我想要的是这样的:(这条线不一定是水平的或垂直的):

^^^^^^^^^^^^^^^^^    
*****************

注意:我不想与某些字符划线。我想使用任意几何形状(例如:起始形状、三角形或任何其他几何形状)来实现。换句话说,我想沿着两点之间的线性路径重复一些几何图形。所以这些简单的几何图形可能会以某种方式旋转以跟随这条线并且......

4

2 回答 2

1

如果我理解正确,您基本上想使用*or^!作为一条线。与其使用普通的实线、虚线、虚线等线条,不如使用物理字符?但你希望这些角色成为一个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代表“^^^^^^^^”的对象。

希望我理解正确,我不知道这是否能解决您的问题。

于 2013-02-01T22:44:32.093 回答
1

我认为这是一个有趣的问题,但我无法在 stackoverflow 文本框中找到令人满意的答案,所以我在 github 上上传了一个建议的解决方案:

https://github.com/mrange/CodeStack/tree/master/q14545675/LineGeometry

我并不是说这是对您问题的 100% 解决方案(因为我不是您所有要求的 100%),但是如果您看一下它,也许可以进行一些改进和改进。

除非ofc我对你正在寻找的东西是错误的。

于 2013-02-02T10:20:18.940 回答