1

我正在使用此代码将 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>
4

2 回答 2

3

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

StackPanel sp = new StackPanel();
sp.Children.Add(Sale);
deatilLayout.Children.Add(sp);
Grid.SetRow(sp, 2);
于 2013-11-12T14:23:19.023 回答
1

给你StackPanel一个名字:

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

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

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

这假设此代码位于 XAML 的代码隐藏中。

于 2013-11-12T15:28:21.200 回答