gpt4 book ai didi

c# - DataGridHyperlinkColumn 突出显示时的文本颜色

转载 作者:太空宇宙 更新时间:2023-11-03 22:35:13 27 4
gpt4 key购买 nike

我有一个简单的 WPF 应用程序,它在 DataGrid 中显示 reddit 链接:

enter image description here

但是请注意,由于链接的颜色和行突出显示的颜色,选择行时 DataGridHyperlinkColumn 中的链接不可见。

解决这个问题的好方法是什么?更改链接文本颜色?更改行高亮颜色?

如果可能,请根据 C# 代码而不是 XAML 显示您的建议,因为此应用程序未使用 XAML。否则,XAML 解决方案就可以了;我会将其转换为 C#。 :-)

作为引用,下面是用于 Title 列的代码:

var event_setter = new EventSetter()
{
Event = Hyperlink.ClickEvent,
Handler = (RoutedEventHandler)((sender, e) =>
{
System.Diagnostics.Process.Start((data_grid.SelectedItem as Link).Url);
})
};

var style = new Style();

style.Setters.Add(event_setter);

var hyperlink_column = new DataGridHyperlinkColumn()
{
Header = "Title",
Binding = new Binding("Title"),
ElementStyle = style,
Width = 600
};

data_grid.Columns.Add(hyperlink_column);

最佳答案

您可以将隐式 Hyperlink 样式添加到您的 DataGrid:

const string Xaml = "<Style TargetType=\"Hyperlink\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">" +
"<Style.Triggers>" +
"<DataTrigger Binding=\"{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridCell}}\" Value=\"True\">" +
"<Setter Property=\"Foreground\" Value=\"White\" />" +
"</DataTrigger>" +
"</Style.Triggers>" +
"</Style>";
data_grid.Resources.Add(typeof(Hyperlink), System.Windows.Markup.XamlReader.Parse(Xaml) as Style);
data_grid.Columns.Add(hyperlink_column);

关于c# - DataGridHyperlinkColumn 突出显示时的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com