2016-08-09 9 views
1

Ich benutze Mein Toolkit Datagrid. Ich habe die Zeilenhöhe reduziert. dann, wenn ich eine Reihe auswähle. Es wird so angezeigt. Wie kann ich die richtige Ausrichtung für Datagid Zeile ..... kann mir jemand helfen, wie kann ich die Zeilenhöhe mit richtiger Ausrichtung reduzieren.Wie richtet man die Zeilenauswahl in Mein Toolkit Datagrid aus?

Es ist wie folgt aus:

enter image description here

-Code für dieses Raster ist:

<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> 

Antwort

2

Sie müssen die margin="12" von ContentPresenter in x:Key="DataGridStyle1" entfernen: enter image description here

Nun ist die Es sieht so aus: enter image description here

Sie können leicht die Ränder des Elements in DataGridTemplatedColumn.CellTemplate ändern die Elemente in der Mitte der Reihe bleiben zu lassen: enter image description here

+0

Vielen Dank für Ihre Antwort! Weißt du auch, wie Sortierung funktioniert? Wenn ich 'canSort = false 'lösche, stürzt es ab, weil es den Pfad der Bestelleigenschaft nicht finden kann: ' NullReferenceException at MyToolkit.Controls.DataGridTemplatedColumn.get_OrderPropertyPath() ' – Benni

Verwandte Themen