相关疑难解决方法(0)

更改超链接前景而不会丢失悬停颜色

我正在编写一个WPF应用程序,我希望我的一些超链接是默认的蓝色,其他的是绿色.没问题 - 我可以设置Foreground:

<TextBlock><Hyperlink Foreground="#0C0">Mark as done</Hyperlink></TextBlock>
Run Code Online (Sandbox Code Playgroud)

麻烦的是,当我这样做时,悬停效果消失了.在普通的超链接中,当我将鼠标移到链接上时,它会变为红色,当我将鼠标移开时,它会变回蓝色.但是在分配了Foreground属性的超链接中,它始终是那种颜色 - 红色悬停被完全抑制.

如何在不丢失默认悬停行为和颜色的情况下更改超链接的颜色?

wpf hyperlink

20
推荐指数
1
解决办法
1万
查看次数

在TextBlock中设置超链接样式

我的DataGrid其中一个栏目中包含Hyperlink一个TextBlock.选择行时,超链接在蓝色上显示为蓝色,因此我想将其文本颜色更改为白色.我怎样才能做到这一点?

DataGrid如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

我试过了

<Style TargetType="DataGridCell">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="TextBlock.Foreground" Value="White" />
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

TextElement代替的代码相同TextBlock.两者都适用于其他列,但不适用于具有超链接的列.

wpf xaml datagrid styles

7
推荐指数
1
解决办法
1714
查看次数

标签 统计

wpf ×2

datagrid ×1

hyperlink ×1

styles ×1

xaml ×1