C# 如何更改DataGrid中超链接的字体颜色

C# 如何更改DataGrid中超链接的字体颜色,c#,wpf,xaml,wpf-controls,wpfdatagrid,C#,Wpf,Xaml,Wpf Controls,Wpfdatagrid,如何在WPF(C#)中更改DataGrid中超链接(字体)的颜色 现在,我的超链接列显示如下:(XAML) 试试这个 xaml <DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="False" > <DataGrid.Columns> <DataGridHyperlinkColumn Header="Email" Binding="{Binding Emai

如何在WPF(C#)中更改DataGrid中超链接(字体)的颜色

现在,我的超链接列显示如下:(XAML)


试试这个

xaml

 <DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="False" >
    <DataGrid.Columns>
        <DataGridHyperlinkColumn  Header="Email" Binding="{Binding Email}">
            <DataGridHyperlinkColumn.CellStyle>
                <Style TargetType="DataGridCell">
                    <Setter Property="Background" Value="Transparent"></Setter>
                    <Setter Property="BorderThickness" Value="0"></Setter>
                    <Style.Resources>
                        <Style TargetType="Hyperlink">
                            <Setter Property="Foreground" Value="Chocolate"></Setter>
                            <Style.Triggers>
                                <EventTrigger RoutedEvent="Hyperlink.Click">
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <ColorAnimation Storyboard.TargetProperty="Foreground.Color" From="Chocolate" To="BlueViolet" Duration="0:0:0.1"></ColorAnimation>
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger>
                            </Style.Triggers>
                        </Style>
                    </Style.Resources>
                </Style>
            </DataGridHyperlinkColumn.CellStyle>
        </DataGridHyperlinkColumn>
    </DataGrid.Columns>
</DataGrid>

c#代码

   public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        ObservableCollection<Customer> custdata = new ObservableCollection<Customer>();
        custdata.Add(new Customer() { Email = new Uri("http://stackoverflow.com/") });
        DG1.ItemsSource = custdata;
    }
}
public class Customer
{
    public Uri Email { get; set; }
}
公共部分类窗口1:窗口
{
公共窗口1()
{
初始化组件();
ObservableCollection custdata=新的ObservableCollection();
custdata.Add(新客户(){Email=newURI(“http://stackoverflow.com/") });
DG1.ItemsSource=客户数据;
}
}
公共类客户
{
公共Uri电子邮件{get;set;}
}
结果


这对我来说很有效,但当我在数据网格中滚动时,更新(单击)的超链接颜色似乎会恢复…或者我没有单击的超链接会更改颜色,而我单击的超链接会恢复为原始颜色。你知道为什么会这样吗?
   public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        ObservableCollection<Customer> custdata = new ObservableCollection<Customer>();
        custdata.Add(new Customer() { Email = new Uri("http://stackoverflow.com/") });
        DG1.ItemsSource = custdata;
    }
}
public class Customer
{
    public Uri Email { get; set; }
}