如何在路径内添加文本块?

9
我有一个 Silverlight 应用程序,它将 Path 添加到 UserControl 的 LayoutRoot 网格中。Path 几何形状是一个简单的矩形。
我想能够添加一个 TextBlock,该 TextBlock 包含在添加到 LayoutRoot 网格的 Path 中。
我还使用自定义 Adorner 来允许我在屏幕上调整 Path 的大小和移动它。
基本上,我希望 TextBlock 的父级是 path,这样无论我如何移动 Path,TextBlock 都会随之移动,并且 TextBlock 内部的文本永远不会超出 Path 的边界。
以下是我目前拥有的示例:
var shape = new ShapeClass((o, u) => { LayoutRoot.Children.Add(o); LayoutRoot.Children.Add(u); }); 

这里是 Shape 类的构造函数:
public ShapeClass(Action<Path, TextBlock> insert){}

当'o'是路径对象,'u'是文本块时,有什么办法可以实现这个?

谢谢。

2个回答

5
将路径和文本框都放在网格或画布中,然后移动它们。这样两个控件相对位置就会保持不变。

好的 - 这将解决这个问题 - 但路径几何可以是矩形形式,如我在原帖中提到的,或者它可以是菱形形式。对于菱形情况,如果我添加了网格以及文本块和路径,并且我正在使用文本换行来处理文本块,那么我该如何确保文本块内的文本保持在菱形路径的边界内? - Chris

3
一个路径(Path)不是内容控件(Content control),因此您不能在其中放置一个文本框(TextBox)。
如果您使用的是简单的矩形(Rectangle),那么为什么不使用边框(Border)控件呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接