2012-01-19 184 views
0

我想將一個,有時兩個不同的TextBlocks添加到單個網格字段中。如果它只有一個,它可以正常工作;如果我加兩個,但是,它們並不是一個寫在另一個之下,而是互相寫在一起,所以我再也看不到它們了。防止TextBlocks彼此重疊

是否有可能在第一個TextBlock之後添加換行符或做其他事情以避免此行爲?

我的代碼添加的TextBlocks是:

for (int k = 0; k < verschiedeneFaecher.Count(); k++){ 
    [...] 
    var fachLehrer = new TextBlock { Text = fachString, TextAlignment = TextAlignment.Left }; 
    [...] 
    Grid.SetColumn(fachLehrer, j + 1); 
    Grid.SetRow(fachLehrer, i + 2); 
    Stundenplan.Children.Add(fachLehrer); 
} 

如果有應該只有一個TextBlock的,verschiedeneFaecher.Count()是1,如果應該有兩個,其2

回答

1

嘗試添加一個StackPanel來處理您的需求的多線性質,然後將文本塊添加到StackPanel。

XAML

<Grid Name="Stundenplan"> 
    <StackPanel Name="AddChildrenHere" /> 
    <!-- XAML for other controls --> 
</grid> 

則...

for (int k = 0; k < verschiedeneFaecher.Count(); k++){ 
    [...] 
    var fachLehrer = new TextBlock { Text = fachString, TextAlignment = TextAlignment.Left }; 
    [...] 
    AddChildrenHere.Children.Add(fachLehrer); 
} 

外網是不是真的需要這個解決方案,但我把它放在了清楚起見。此外,您的原始代碼提到變量i,但沒有實例化它,所以我忽略它。儘管如此,你應該有足夠的精力去完成這個確切的位置。 :)

0

您將需要設置Grid.RowDefinitions您的Stundenplan網格的集合,以確保您在網格中定義了正確的行數,否則所有項目都將顯示在彼此之上。

請參閱MSDN docs here