1
我有DataGridCell
一个Style
DatagridCell风格
<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
颜色。
(背景颜色是深颜色和前景颜色是轻,但在选择了小区/行,则背景颜色为淡和前景颜色应该是暗的)
EDIT
我编辑我的问题更清楚。对不起以前的误解。我的目标是TextBox
在DataGridCell
中,并使用Trigger
来自DataGridCellStyle
。
任何帮助表示赞赏。
真是对不起前景。也许我没有足够的自我解释......设置文本框背景为透明没有问题......真正的问题是,文本框仍然有自己的前景,而不是单元格的前景......所以当行是选择。请参阅DataGridCellStyle中的那些触发器 – 2013-03-21 15:58:26
我编辑了我的问题以便更清楚。谢谢。 – 2013-03-21 18:58:24
明白了。固定。我刚刚在一个小时前的另一个问题上解决了这个相同的问题。 – 2013-03-22 17:10:58