У меня есть Style
для DataGridCell
DatagridCell стиль перекрываться стиля TextBox
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Foreground" Value="{StaticResource ForegroundBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" SnapsToDevicePixels="True" >
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center" Margin="4, 0, 0, 0"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="{StaticResource DarkForegroundBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
Он работает, когда я определить столбец, как это:
<DataGridTemplateColumn Header="Column1" Width="Auto" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Property1, Mode=OneWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Но когда я TextBox
вместо TextBlock
следующим образом:
<DataGridTemplateColumn Width="Auto" Header="Column1">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Property1, Mode=OneWay}" IsReadOnly="True" TextWrapping="Wrap" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Он не работает с TextBox
есть свои Style
. Мне нужно использовать TextBox
, потому что я хочу, чтобы пользователь выбирал текст из ячейки. Но также мне нужен цвет Foreground
для изменения, если выбрана ячейка/строка .
(Цвет фона темно и цвет переднего плана света, но при выборе/строки ячейки, то цвет фона свет и цвет переднего плана должен быть темным)
РЕДАКТИРОВАТЬ
Я отредактировал мой вопрос, чтобы быть более понятным. Извините за предыдущие недоразумения. Моя цель здесь состоит в том, чтобы TextBox
в DataGridCell
и использовать Trigger
s от DataGridCellStyle
.
Любая помощь приветствуется.
Мне очень жаль. Возможно, я недостаточно объяснил себе ... Нет проблем с установкой поля текстового поля для прозрачного ... реальная проблема заключается в том, что текстовое поле все еще имеет собственный передний план, а не передний план ячейки ... поэтому он не изменяется, когда строка выбран. см. эти триггеры в DataGridCellStyle –
Я отредактировал мой вопрос, чтобы быть более понятным. Спасибо. –
Получил это. Исправлена. Я просто решил эту идентичную проблему по другому вопросу, как час назад. –