【问题标题】:Display two textBlock on a dataGrid在 dataGrid 上显示两个 textBlock
【发布时间】:2023-03-17 17:44:01
【问题描述】:

是否有可能在一个网格上显示两个 TextBlock ?

我试过了,但我只看到我的第一个 TextBlock。

这是我的 XAML 代码:

                <ListBox x:Name="ListBoxTiers" HorizontalAlignment="Left" VerticalAlignment="Top"> 
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Border Background="#FFDEDEDE" CornerRadius="10" Margin="10">
                            <StackPanel Orientation="Horizontal">
                                <Grid Height="89" Width="975">
                                    <TextBlock x:Name="TxtBox_CodeTiers" TextWrapping="Wrap" Text="{Binding m_strCode}" Margin="12,23,479,30" />
                                    <TextBlock x:Name="TxtBox_NomTiers" Margin="501,23,14,24" TextWrapping="Wrap" Text="{Binding m_strNom}"/>
                                </Grid>                                                  
                            </StackPanel>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

非常感谢:)

【问题讨论】:

    标签: wpf panel datatemplate


    【解决方案1】:

    Grid 是最好的支持方向的 UI 容器。您可以通过以下方式修改您的代码。

    <ListBox x:Name="ListBoxTiers" HorizontalAlignment="Left" VerticalAlignment="Top"> 
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Border Background="#FFDEDEDE" CornerRadius="10" Margin="10">
                                <Grid Height="89" Width="975">
                           <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                                    <TextBlock x:Name="TxtBox_CodeTiers" Grid.Column=0 TextWrapping="Wrap" Text="{Binding m_strCode}" />
                                    <TextBlock x:Name="TxtBox_NomTiers" Grid.Column=1 TextWrapping="Wrap" Text="{Binding m_strNom}"/>
                                </Grid> 
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
    

    您应该必须根据您的要求调整列的列宽。

    【讨论】:

      【解决方案2】:

      您的两个文本都绘制在同一位置。 您可以添加 Grid 列/Raws 或完全删除网格并留在 stackPanel 中

      你应该去Panels Overview

      【讨论】:

      • 我尝试使用 Blend 来编写代码。你能给我代码,以便理解吗?谢谢:)
      • @WalterFabioSimoni 我添加了一个指向 msdn 文章的链接,其中包含示例
      • 非常感谢,所以,如果我想在列表框的同一行显示两个或三个文本框。请问你有什么建议?网格?两格?即使使用 MSDN,我也有点失落;(
      • @WalterFabioSimoni 答案会根据您的特定 UI 要求而改变,从 stackPanel 开始......
      猜你喜欢
      • 2011-07-09
      • 1970-01-01
      • 2014-10-27
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多