2016-03-11 2 views
0

У меня есть Xceed datagrid, где каждый шаблон ячейки имеет прозрачный фон. Недавно я разместил ReadOnly TextBox внутри одного из шаблонов ячеек. Это позволяет пользователю щелкнуть по ячейке и выбрать подмножество текста. Однако один побочный эффект заключается в том, что ячейка становится белой, когда я нажимаю на TextBox.Предотвращение появления фона ячейки на фокусе

Вот колонка:

   <xcdg:Column Title="{x:Static rcer:CEWR.Field_PinyinDefinition}" 
          AllowGroup="False"         
          ReadOnly="True"         
          CellContentTemplate="{StaticResource ceItemsCellContentTemplate}" 
          FieldName="Items"> 
        <xcdg:Column.TitleTemplate> 
         <DataTemplate> 
          <TextBlock Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" Text="{Binding}" /> 
         </DataTemplate> 
        </xcdg:Column.TitleTemplate> 
       </xcdg:Column> 

и шаблон

<DataTemplate x:Key="ceItemsCellContentTemplate"> 
    <DataTemplate.Resources /> 
    <ItemsControl Margin="0" 
        Background="Transparent" 
        ItemTemplate="{StaticResource ceItemTemplate}" 
        ItemsSource="{Binding}" 
        Padding="0" 
        Style="{StaticResource itemsBoxStyle}"> 
     <ItemsControl.ItemContainerStyle> 
      <Style TargetType="ContentPresenter"> 
       <Style.Triggers> 
        <Trigger Property="IsFocused" Value="True"> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ItemsControl.ItemContainerStyle> 
     <ItemsControl.LayoutTransform> 
      <ScaleTransform ScaleX="{Binding Zoom, Source={StaticResource ceShowSettings}}" ScaleY="{Binding Zoom, Source={StaticResource ceShowSettings}}" /> 
     </ItemsControl.LayoutTransform> 
    </ItemsControl> 
</DataTemplate> 

Здесь превращаются фон ячейки белого

enter image description here

Я пытался баловаться с ItemsControl, но это не так. Это должно быть нечто вроде CellContentStyle, которое пока недоступно.

Обновление. Я могу установить CanBeCurrentWhenReadOnly = «False» , и фон останется, когда я нажму на определение TextBox, но я не смогу взаимодействовать с содержимым ячейки.

ответ

0

Вот как это сделать.

<Style TargetType="{x:Type xcdg:DataCell}"> 
    <Setter Property="CurrentBackground" Value="Transparent"/> 
</Style> 
Смежные вопросы