在C#中将文本块添加到stackpanel

时间:2013-11-12 14:20:22

标签: c# xaml visual-studio-2012 windows-8 stackpanel

我正在使用此代码将C#中的Textblock写入Xaml页面

 Sale.Name = "Price";
  Sale.Text = "$200";
  deatilLayout.Children.Add(Sale);
  Grid.SetRow(Sale, 1);

这只会使页面上显示“200美元”文字。

如何将此文本块放在网格第2行的Stackpanel中?

请参阅下面的页面的alyout以及我想要文本块的位置

<Grid  x:Name="deatilLayout">
    <Grid.RowDefinitions>
            <RowDefinition Height="140"/>
            <RowDefinition Height="*"/>

    </Grid.RowDefinitions>

     <Grid Grid.Row="1" Margin="50 0 0 30" Height="600" Width="1200">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
       <Image x:Name="image" Source="{Binding Image}"/>
       <StackPanel Orientation="Vertical" Grid.column="1">
        <TextBlock Text="{Binding Title}" FontSize="52" TextWrapping="Wrap" />
       **//Place textblock from C# here**
         </StackPanel>
         </Grid>
</Grid>

2 个答案:

答案 0 :(得分:3)

只需将其添加到StackPanel,然后再将其添加到网格中。

StackPanel sp = new StackPanel();
sp.Children.Add(Sale);
deatilLayout.Children.Add(sp);
Grid.SetRow(sp, 2);

答案 1 :(得分:1)

为您的StackPanel命名:

<StackPanel Name="MyStackPanel">
   ...
</StackPanel>

然后在您的代码中,只需将控件添加到其中:

Sale.Name = "Price";
Sale.Text = "$200";
MyStackPanel.Children.Add(Sale);

这假设这个代码是在XAML的代码隐藏中。