2010-01-12 17 views
9

我有一個Silverlight應用程序,它將一個路徑添加到UserControl的LayoutRoot網格。路徑幾何是一個簡單的矩形。如何在路徑中添加一個TextBlock?

我希望能夠添加包含在添加到LayoutRoot網格的路徑中的TextBlock。

我也使用自定義的Adorner來允許我調整屏幕上的路徑並移動它。

基本上,我希望TextBlock的父路徑成爲路徑,以便每當我移動路徑時,TextBlock都會隨之移動,而且TextBlock內的文本也永遠不會超出路徑邊界。

這裏是什麼,我現在有一個例子:

var shape = new ShapeClass((o, u) => { LayoutRoot.Children.Add(o); LayoutRoot.Children.Add(u); }); 

這裏是Shape類的構造函數:

public ShapeClass(Action<Path, TextBlock> insert){} 

其中「O」是路徑對象和「U」是TextBlock ...

有沒有人有任何想法,這可能會實現?

謝謝。

回答

5

將路徑和文本框都放到網格或畫布中,然後移動它。這樣兩個控件將保持相對於彼此的相同位置。

+0

好的 - 這將解決該問題 - 但是,如我的原始帖子中所述,路徑幾何體可以是矩形的形式,或者它可以是菱形的形式。在鑽石的情況下,如果我有一個網格可以添加路徑和文本塊,並且我正在使用textwrapping作爲文本塊,那麼我如何確保textblock中的文本保持在路徑的邊界內鑽石? – Chris 2010-01-12 16:58:11

3

Path不是一個Content控件,因此你不能在其中放置一個TextBox。

如果您使用的是簡單的Rectangle,那麼爲什麼不使用Border控件呢?

相關問題