2016-08-09 51 views
1

我正在使用我的工具包datagrid。我減少了行高。然後當我選擇一行。它是這樣顯示的。我怎樣才能得到正確的對齊Datagid行..... 任何人都可以幫助我,我怎樣才能減少行高度適當的對齊。如何在我的工具包Datagrid中對齊行選擇?

它是這樣的:

enter image description here

代碼這個電網是:

<Border x:Name="WideMainGrid" Grid.Row="1" Grid.ColumnSpan="8" Background="Black" BorderThickness="1" BorderBrush="Gray" Margin="10,-5,5,0"> 
    <ScrollViewer x:Name="svCartItemsList" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Grid.Row="1" Grid.ColumnSpan="8"> 
     <controls:DataGrid x:Name="dgNewBill" RowBackgroundEvenBrush="Black" RowBackgroundOddBrush="Black" ItemsSource="{Binding objStockIssueItemList}" VerticalAlignment="Stretch" Height="470" SelectionMode="Single" TabNavigation="Local" HeaderBackground="Black" Background="Black" BorderThickness="1" BorderBrush="Gray" Grid.Row="2" Grid.ColumnSpan="9" Margin="0,0,0,0"> 
      <controls:DataGrid.Resources> 
       <Converters:VisibilityConverter x:Key="vc" /> 

       <Converters:NotConverter x:Key="nc" /> 
       <Style x:Key="TransparentListBox" TargetType="ListBox"> 
        <Setter Property="Foreground" Value="{StaticResource ListBoxForegroundThemeBrush}"/> 
        <Setter Property="Background" Value="Transparent"/> 
        <Setter Property="BorderBrush" Value="{StaticResource ListBoxBorderThemeBrush}"/> 
        <Setter Property="BorderThickness" Value="{StaticResource ListBoxBorderThemeThickness}"/> 
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/> 
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> 
        <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled"/> 
        <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="True"/> 
        <Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled"/> 
        <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="True"/> 
        <Setter Property="ScrollViewer.ZoomMode" Value="Disabled"/> 
        <Setter Property="IsTabStop" Value="False"/> 
        <Setter Property="TabNavigation" Value="Once"/> 
        <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/> 
        <Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/> 
        <Setter Property="ItemsPanel"> 
         <Setter.Value> 
          <ItemsPanelTemplate> 
           <VirtualizingStackPanel/> 
          </ItemsPanelTemplate> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="ListBox"> 
           <Border x:Name="LayoutRoot" BorderBrush="{TemplateBinding BorderBrush}" 
     BorderThickness="{TemplateBinding BorderThickness}" 
     Background="{TemplateBinding Background}"> 
            <VisualStateManager.VisualStateGroups> 
             <VisualStateGroup x:Name="CommonStates"> 
              <VisualState x:Name="Normal"/> 
              <VisualState x:Name="Disabled"> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="LayoutRoot"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/> 
                </ObjectAnimationUsingKeyFrames> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="LayoutRoot"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ListBoxDisabledForegroundThemeBrush}"/> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </VisualState> 
             </VisualStateGroup> 
             <VisualStateGroup x:Name="FocusStates"> 
              <VisualState x:Name="Focused"/> 
              <VisualState x:Name="Unfocused"/> 
             </VisualStateGroup> 
            </VisualStateManager.VisualStateGroups> 
            <ScrollViewer x:Name="ScrollViewer" 
        HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}" 
        HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" 
        IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" 
        IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" 
        Padding="{TemplateBinding Padding}" TabNavigation="{TemplateBinding TabNavigation}" 
        VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" 
        VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" 
        ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}"> 
             <ItemsPresenter/> 
            </ScrollViewer> 
           </Border> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
       <Style x:Key="DataGridStyle1" TargetType="controls:DataGrid"> 
        <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" /> 
        <Setter Property="HeaderBackground" Value="{ThemeResource SystemControlHighlightChromeHighBrush}" /> 
        <Setter Property="RowBackgroundOddBrush" Value="{ThemeResource SystemControlPageBackgroundChromeLowBrush}" /> 
        <Setter Property="CellTemplate"> 
         <Setter.Value> 
          <DataTemplate> 
           <ContentPresenter Margin="12" Content="{Binding Control}" /> 
          </DataTemplate> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="controls:DataGrid"> 
           <Grid Background="{TemplateBinding Background}"> 
            <Grid.RowDefinitions> 
             <RowDefinition Height="Auto" /> 
             <RowDefinition Height="*" /> 
            </Grid.RowDefinitions> 

            <Grid Grid.Row="0" Visibility="Collapsed" Background="{TemplateBinding HeaderBackground}" Height="40" x:Name="ColumnHeaders"> 
             <!-- HACK: Needed so that column DPs are working when adding columns in code only. --> 
             <ContentPresenter> 
              <controls:DataGridTextColumn /> 
             </ContentPresenter> 
            </Grid> 

            <controls:MtListBox BorderThickness="0" Grid.Row="1" 
         ItemContainerStyle="{TemplateBinding RowStyle}" 
         HorizontalContentAlignment="Stretch" 
         VerticalContentAlignment="Stretch" 
         Foreground="{ThemeResource SystemControlForegroundBaseHighBrush}" 
         Style="{StaticResource TransparentListBox}" 
         Margin="0" x:Name="Rows" /> 
           </Grid> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="HeaderTemplate"> 
         <Setter.Value> 
          <DataTemplate> 
           <Grid Background="Transparent"> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="Auto" /> 
             <ColumnDefinition Width="*" /> 
            </Grid.ColumnDefinitions> 

            <ContentPresenter Grid.Column="0" 
         Margin="12,0,12,2" 
         VerticalAlignment="Center" 
         FontSize="{ThemeResource TextStyleLargeFontSize}" 
         Content="{Binding Header}" /> 

            <StackPanel Grid.Column="1" 
         Visibility="{Binding IsSelected, Converter={StaticResource vc}}" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Left"> 
             <Path Data="M4,0 L0,8 L8,8 Z" Fill="White" Visibility="{Binding IsAscending, Converter={StaticResource vc}}"/> 
             <Path Data="M0,0 L4,8 L8,0 Z" Fill="White" Visibility="{Binding IsAscending, Converter={StaticResource nc}}"/> 
            </StackPanel> 
           </Grid> 
          </DataTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 

      </controls:DataGrid.Resources> 
      <controls:DataGrid.Style> 
       <StaticResource ResourceKey="DataGridStyle1"/> 
      </controls:DataGrid.Style> 

      <controls:DataGrid.RowStyle> 
       <Style TargetType="ListBoxItem"> 
        <Setter Property="IsTabStop" Value="True"></Setter> 
        <Setter Property="Padding" Value="0,0,0,0"></Setter> 
        <Setter Property="Height" Value="35"></Setter> 
       </Style> 
      </controls:DataGrid.RowStyle> 



      <controls:DataGrid.Columns> 

       <controls:DataGridTextColumn Binding="{Binding SNumber}" Width="0.5*" CanSort="False" Foreground="White"> 

        <controls:DataGridTextColumn.Style> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextAlignment" Value="Center"></Setter> 
          <Setter Property="VerticalAlignment" Value="Center"></Setter> 
          <!--<Setter Property="MinHeight" Value="30"></Setter>--> 
         </Style> 
        </controls:DataGridTextColumn.Style> 
       </controls:DataGridTextColumn> 

       <controls:DataGridTemplatedColumn CellTemplate="{StaticResource myCellTemplateMonth}" Width="2.5*" x:Name="ItemDesc" CanSort="False" IsAscendingDefault="True"> 


        <!--<controls:DataGridTemplatedColumn.CellTemplate> 
          <DataTemplate> 
           <Grid> 
            <Grid.Resources> 
             <Storyboard x:Key="std" x:Name="std"> 
              <ColorAnimation To="DarkTurquoise" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True" 
     Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
     Storyboard.TargetName="lastnamePanel" /> 
             </Storyboard> 

            </Grid.Resources> 
            <StackPanel x:Name="lastnamePanel" Background="Black"> 
             <i:Interaction.Behaviors> 
              <Core:DataTriggerBehavior x:Name="desctrgr" Binding="{Binding description}" ComparisonCondition="Equal"> 
               <Media:ControlStoryboardAction x:Name="mediaDesc" Storyboard="{StaticResource std}" /> 
              </Core:DataTriggerBehavior> 
             </i:Interaction.Behaviors> 
             <TextBlock x:Name="lastnameTxt" Foreground="White" Text="{Binding description}" TextAlignment="Left" VerticalAlignment="Stretch" Margin="0,0,0,0"></TextBlock> 
            </StackPanel> 
           </Grid> 
          </DataTemplate> 
         </controls:DataGridTemplatedColumn.CellTemplate>--> 

       </controls:DataGridTemplatedColumn> 


       <controls:DataGridTextColumn Binding="{Binding uom}" Width="0.5*" CanSort="False" Foreground="White"> 

        <controls:DataGridTextColumn.Style> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextAlignment" Value="Center"></Setter> 
          <Setter Property="VerticalAlignment" Value="Center"></Setter> 
          <Setter Property="Margin" Value="0,0,0,0"></Setter> 
         </Style> 
        </controls:DataGridTextColumn.Style> 
       </controls:DataGridTextColumn> 

       <controls:DataGridTemplatedColumn Width="0.7*" CanSort="False"> 

        <controls:DataGridTemplatedColumn.CellTemplate> 
         <DataTemplate> 
          <StackPanel Name="pricePanel" Height="30" Tapped="pricePanel_Tapped" > 
           <TextBlock Name="price" Foreground="White" Text='{Binding editedPrice}' TextAlignment="Center" VerticalAlignment="Center" Margin="0,5,0,0"></TextBlock> 
          </StackPanel> 
         </DataTemplate> 
        </controls:DataGridTemplatedColumn.CellTemplate> 
       </controls:DataGridTemplatedColumn> 

       <controls:DataGridTemplatedColumn Width="0.7*" CanSort="False"> 

        <controls:DataGridTemplatedColumn.CellTemplate> 
         <DataTemplate> 
          <StackPanel Name="quantityPanel" Height="30" Tapped="quantityPanel_Tapped"> 
           <TextBlock Name="quantity" TextAlignment="Center" Foreground="White" Text='{Binding quantity}' VerticalAlignment="Center" Margin="0,5,0,0"></TextBlock> 
          </StackPanel> 
         </DataTemplate> 
        </controls:DataGridTemplatedColumn.CellTemplate> 
       </controls:DataGridTemplatedColumn> 

       <controls:DataGridTemplatedColumn Width="0.6*" CanSort="False"> 

        <controls:DataGridTemplatedColumn.CellTemplate> 
         <DataTemplate> 
          <StackPanel Name="discountPanel" Height="30" Tapped="discountPanel_Tapped" > 
           <TextBlock Name="Discount" TextAlignment="Center" Foreground="White" Text='{Binding discount}' VerticalAlignment="Center" Margin="10,5,0,0"></TextBlock> 
          </StackPanel> 
         </DataTemplate> 
        </controls:DataGridTemplatedColumn.CellTemplate> 
       </controls:DataGridTemplatedColumn> 

       <controls:DataGridTextColumn Binding="{Binding cartTotal}" Width="0.85*" CanSort="False" Foreground="White"> 

        <controls:DataGridTextColumn.Style> 
         <Style TargetType="TextBlock"> 
          <Setter Property="HorizontalAlignment" Value="Center"></Setter> 
          <Setter Property="VerticalAlignment" Value="Center"></Setter> 
          <Setter Property="Margin" Value="-40,0,0,0"></Setter> 
         </Style> 
        </controls:DataGridTextColumn.Style> 
       </controls:DataGridTextColumn> 

       <!--delete image column--> 
       <controls:DataGridTemplatedColumn CanSort="False"> 
        <!--<controls:DataGridTemplatedColumn.Header> 
          <Image Source="/Images/erase.png" Height="40" Width="40" Grid.Column="7" Margin="5"></Image> 
         </controls:DataGridTemplatedColumn.Header>--> 
        <controls:DataGridTemplatedColumn.CellTemplate> 
         <DataTemplate> 
          <StackPanel x:Name="voidImagePanel" Height="30" Tapped="voidImagePanel_Tapped"> 
           <Image x:Name="VoidImage" Source="{Binding imageUrl}" Height="20" Width="30" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="-20,5,0,0"></Image> 
          </StackPanel> 
         </DataTemplate> 
        </controls:DataGridTemplatedColumn.CellTemplate> 
       </controls:DataGridTemplatedColumn> 


      </controls:DataGrid.Columns> 
     </controls:DataGrid> 
    </ScrollViewer> 
</Border> 

回答

2

您需要刪除的ContentPresentermargin="12"x:Key="DataGridStyle1"enter image description here

現在它看起來像這樣: enter image description here

,可以稍微修改元素的利潤率DataGridTemplatedColumn.CellTemplate讓物品留在該行的中心: enter image description here

+0

謝謝你的回覆!你也知道如何做分揀工作嗎?如果我刪除'canSort = false',它會崩潰,因爲它找不到訂單屬性路徑: 'MyToolkit.Controls.DataGridTemplatedColumn.get_OrderPropertyPath()的NullReferenceException' – Benni

相關問題