【问题标题】:How to support re-sizing of DataGridRowHeader column in DataGrid如何支持在 DataGrid 中调整 DataGrid Row Header 列的大小
【发布时间】:2012-03-06 11:33:05
【问题描述】:

我想允许重新调整 dataGrid 的第零列的大小,该列包含 SelectAll 按钮和行标题 -

图片取自 - WPF Toolkit DataGrid, Part II – Custom styling

【问题讨论】:

    标签: wpf wpfdatagrid styling resize datagridrowheader


    【解决方案1】:

    试试这个...

    XAML:

       <tk:DataGrid x:Name="MyDataGrid"
                    RowHeaderWidth="15"
                    ItemsSource="{StaticResource MyData}"
                    AutoGenerateColumns="False">
            <tk:DataGrid.Columns>
                <tk:DataGridTextColumn Binding="{Binding ID}">
                    <tk:DataGridTextColumn.HeaderTemplate>
                        <DataTemplate>
                            <DockPanel>
                                <GridSplitter
                                    DockPanel.Dock="Left"
                                    VerticalAlignment="Stretch"
                                    HorizontalAlignment="Left" Width="2"
                                    DragDelta="GridSplitter_DragDelta"/>
                                <TextBlock Text="ID" DockPanel.Dock="Right"/>
                            </DockPanel>
                        </DataTemplate>
                    </tk:DataGridTextColumn.HeaderTemplate>
                </tk:DataGridTextColumn>
                <tk:DataGridTextColumn Header="Name"
                                       Binding="{Binding Name}">
                </tk:DataGridTextColumn>
            </tk:DataGrid.Columns>
        </tk:DataGrid>
    

    代码背后:

         private void GridSplitter_DragDelta
            (object sender,
             System.Windows.Controls.Primitives.DragDeltaEventArgs e)
        {
            if (MyDataGrid.RowHeaderWidth + e.HorizontalChange >= 15)
            {
                MyDataGrid.RowHeaderWidth = MyDataGrid.RowHeaderWidth + e.HorizontalChange;
            }
        }
    

    您可以覆盖RowHeaderTemplate 并将这个精确的网格拆分器停靠在右侧。但对我来说将它停靠在第一列标题的左侧效果最好!

    【讨论】:

      【解决方案2】:
                      <GridViewColumn Header="Name" Width="150">
                           <GridViewColumn.CellTemplate>
                               <DataTemplate>
                                  <TextBlock Width="Auto" TextTrimming="CharacterEllipsis"/>
                              </DataTemplate>
                          </GridViewColumn.CellTemplate>
                      </GridViewColumn>
      

      试试这个

      【讨论】:

      • GridViewColumnListView 特定的,与 WPF 数据网格无关。
      猜你喜欢
      • 2011-11-20
      • 2011-08-20
      • 1970-01-01
      • 2011-11-18
      • 2011-05-23
      • 1970-01-01
      • 2013-10-30
      • 2011-04-21
      • 2016-01-22
      相关资源
      最近更新 更多