2013-03-14 82 views
1

我需要修改的DataGridSelectAllButtonWidth所以我改變使用以下代碼:如何修改放在WPF DataGrid的DataGridSelectAllButton下的按鈕的寬度?

<ControlTemplate x:Key="DataGridControlTemplate" TargetType="{x:Type DataGrid}"> 
    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True"> 
     <ScrollViewer x:Name="DG_ScrollViewer" Focusable="false"> 
      <ScrollViewer.Template> 
       <ControlTemplate TargetType="{x:Type ScrollViewer}"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="*"/> 
          <ColumnDefinition Width="Auto"/> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto"/> 
          <RowDefinition Height="*"/> 
          <RowDefinition Height="Auto"/> 
         </Grid.RowDefinitions> 
         <Button Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}" 
            Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" 
            **Width="20"**> 
         </Button> 
         <DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> 
         <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="2" Grid.Row="1" d:IsLocked="True"/> 
         <ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" d:IsLocked="True"/> 
         <Grid Grid.Column="1" Grid.Row="2" d:IsLocked="True"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/> 
           <ColumnDefinition Width="*"/> 
          </Grid.ColumnDefinitions> 
          <ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" d:IsLocked="True"/> 
         </Grid> 
        </Grid> 
       </ControlTemplate> 
      </ScrollViewer.Template> 
      <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
     </ScrollViewer> 
    </Border> 
</ControlTemplate> 

問題是,當我改變DataGridSelectAllButtonWidth,我必須改變Buttom的寬度,其安置DataGridSelectAllButton下每個排,但我不知道如何?任何想法?

+0

嘗試設置「邊距」而不是「寬度」 – 2013-03-14 09:07:33

+0

我應爲哪些元素設置邊距? – 2013-03-14 09:11:37

+0

看看你的xaml你的按鈕是在一個網格內(Grid.Row =「0」,Grid.Column =「0」),所以它不是你想要改變它的列/行的按鈕,或跨越列,你有沒有想要的行爲圖片?這個問題很難說。 – 2013-03-14 09:16:14

回答

0
<Style TargetType="{x:Type DataGridRowHeader}" x:Key="DataGridRowHeaderStyle"> <Setter Property="Width" Value="20"/></Style>