必须在XAML中复制此布局,您将使用哪些控件?

时间:2011-11-11 00:33:40

标签: wpf xaml layout

我刚刚开始弄清楚什么最适合XAML(WPF)中的布局/数据显示,而且对于在某些情况下哪些控件等工作得很好的直觉。

  • 不需要对任何内容进行排序或过滤,列和行是静态的
  • 使用数据网格还是堆栈面板/列表框的某种组合最好?
  • 我看到"棘手"零件正在添加"偏斜调整"子标题和某些列之间的分隔线,添加这些列的建议是什么?

Layout

1 个答案:

答案 0 :(得分:2)

我实际上会使用标准Grid(而不是DataGrid)。一开始看起来很尴尬,但在你学会了如何使用之后,你就会到处使用它! :)

以下是显示数据的示例(不完整,但您明白了这一点):

<Grid x:Name="grdData" Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
            <ColumnDefinition Width="Auto" MinWidth="50" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />

        </Grid.RowDefinitions>


        <TextBlock FontWeight="Bold" FontSize="14" Padding="10">Annualized Statistics</TextBlock>

        <TextBlock Grid.Row="1" Grid.Column="1">1Yr</TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="2">2Yr</TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="3">3Yr</TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="4">4Yr</TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="5">5Yr</TextBlock>

        <TextBlock Grid.Row="1" Grid.Column="6">1st Half</TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="7">2nd Half</TextBlock>

        <TextBlock Grid.Row="1" Grid.Column="8">Incept</TextBlock>



        <TextBlock Grid.Row="2" Grid.Column="0">Return</TextBlock>

        <TextBlock Grid.Row="2" Grid.Column="1">(4.81)</TextBlock>
        <TextBlock Grid.Row="2" Grid.Column="2">(2.25)</TextBlock>
        <TextBlock Grid.Row="2" Grid.Column="3">1.01</TextBlock>
        <TextBlock Grid.Row="2" Grid.Column="4">4.30</TextBlock>
        <TextBlock Grid.Row="2" Grid.Column="5">(0.61)</TextBlock>

        <TextBlock Grid.Row="2" Grid.Column="6">(18.75)</TextBlock>
        <TextBlock Grid.Row="2" Grid.Column="7">5.06</TextBlock>

        <TextBlock Grid.Row="2" Grid.Column="8">(7.48)</TextBlock>

        <Rectangle Grid.Column="5" Grid.Row="1" Grid.RowSpan="5" Fill="Black" Width="1" HorizontalAlignment="Right" />
        <Rectangle Grid.Column="7" Grid.Row="1" Grid.RowSpan="5" Fill="Black" Width="1" HorizontalAlignment="Right" />

    </Grid>