Một trong các cột trong số DataGrid
của tôi có chứa một Hyperlink
trong một TextBlock
. Khi một hàng được chọn, siêu liên kết hiển thị màu xanh dương trên màu xanh lam, vì vậy tôi muốn thay đổi màu văn bản thành màu trắng. Làm thế nào tôi có thể làm điều đó?Tạo siêu kết nối bên trong một TextBlock
Các DataGrid
trông như thế này:
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Title">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap">
<Hyperlink NavigateUri="{Binding Url}">
<Run Text="{Binding Title}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Tôi đã thử
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="TextBlock.Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
và cùng mã với TextElement
thay vì TextBlock
. Cả hai đều làm việc cho các cột khác, nhưng không phải cho cột này với siêu liên kết.
Điều này làm cho các siêu liên kết màu sắc chính xác khi lựa chọn, nhưng cũng làm cho nó màu đen khi không được chọn và tôi không muốn điều đó. – svick
Mở rộng phong cách của bạn để phù hợp với yêu cầu của bạn – HCL
Heh, điều đó đã không xảy ra với tôi. Vâng, nó hoạt động ngay bây giờ, cảm ơn. Tôi vẫn còn tò mò cho dù có một cách tốt hơn để làm điều đó, mặc dù. – svick