防止细胞背景在焦点上变白

时间:2016-03-11 11:17:23

标签: c# wpf datagrid xceed

我有一个Xceed数据网格,其中每个单元格模板都有透明背景。最近我在其中一个单元格模板中放置了一个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 =&#34; False&#34; 当我点击TextBox定义时,背景将会停留,但我无法与单元格的内容进行交互。

1 个答案:

答案 0 :(得分:0)

这是怎么做的。

<Style TargetType="{x:Type xcdg:DataCell}">
    <Setter Property="CurrentBackground" Value="Transparent"/>
</Style>