2015-04-20 5 views
0

Я следующие стили для моих DataGrid строк и ячеек:Установить границу на DataGrid ряд

<Style TargetType="{x:Type DataGridRow}"> 
      <Setter Property="Margin" Value="0"/> 
      <Setter Property="BorderBrush" Value="Transparent" /> 
      <Setter Property="HorizontalAlignment" Value="Stretch" /> 
      <Setter Property="Foreground" Value="{StaticResource ResourceKey=CouleurTexte}" /> 
      <Setter Property="Padding" Value="0"/> 
      <Setter Property="BorderThickness" Value="1"/> 
      <Setter Property="Cursor" Value="Arrow"/> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="{StaticResource ResourceKey=CouleurDataGridRowSelected}"/> 
        <Setter Property="Foreground" Value="{StaticResource ResourceKey=CouleurTexteBouton}" /> 
        <Setter Property="BorderBrush" Value="{StaticResource ResourceKey=CouleurDataGridBorderSelected}" /> 
       </Trigger> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="{StaticResource ResourceKey=CouleurDataGridRowHover}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
<Style TargetType="{x:Type DataGridCell}"> 
     <Setter Property="Padding" Value="5" /> 
     <Setter Property="BorderBrush" Value="Transparent" /> 
     <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
     <Setter Property="Cursor" Value="Arrow"/> 
     <Setter Property="BorderThickness" Value="0"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type DataGridCell}"> 
        <Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
         <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"> 
          <ContentPresenter.ContentTemplate> 
           <DataTemplate> 
            <TextBlock Background="Transparent" Name="texte" TextTrimming="CharacterEllipsis" 
           Height="auto" Width="auto" VerticalAlignment="Center" Text="{Binding Text}"/> 
           </DataTemplate> 
          </ContentPresenter.ContentTemplate> 
         </ContentPresenter> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Background" Value="{StaticResource ResourceKey=CouleurDataGridRowSelected}"/> 
      </Trigger> 
      <DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Value="True"> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

с моей DataGrid, определенной со звездами в ширину моих колонок (так что они могут взять все пространство окна).

Я хочу установить границу вокруг полной строки при ее выборе. Мои стили работают нормально, пока я не установил BorderThickness в 1 в строке datagrid. Когда я делаю datagrid, покажите горизонтальную полосу прокрутки, чтобы прокрутить только один (возможно, 2) пиксель (тот, который добавлен в рамку). Когда у меня нет всех моих столбцов с «», так как ширина отлично работает, но мне нужно найти способ заставить его работать с «». Как я могу избежать такого поведения? Кажется, граница выходит за пределы строки?

Спасибо

ответ

0

Я нашел трюк, чтобы сделать это благодаря ответу Грязи.

С его решением у меня были проблемы с чередующимся рядом строк. Поэтому я проверил использование Snoop и попытался изменить разные значения, и кажется, что мы можем «решить» эту проблему, установив новый шаблон для datagridRow с margin = «-1,0, -1,0» (моя граница составляет 1) на DataGridCellsPresenter.

1

Я помню, что этот вопрос и провести хороший много времени, чтобы исправить это, наконец, должен был исправить его, имея запас -ve на вас управления, Вы можете установить -ve запас, равный ширину границы и увидеть нежелательную полосу прокрутки.

+0

Благодарим вас за ваш ответ, но я не понимаю «край поля», можете ли вы привести мне пример или ссылку? Спасибо – user2088807

+0

set Margin = "-5" – Muds

Смежные вопросы