在WPF中高效显示图像上的文本?

Shi*_*mmy 5 wpf text image

如何在图像上显示文本,因此它应该始终可见(因为图像颜色混合且不可预测)?

我想到了两个选择:

  1. 使文本边框为白色,而文本本身为黑色
  2. 使文本对图片显示负面

第一种选择是首选,因为它看起来更加坚固.

嵌入文本很简单:

<Grid>
  <Image Source="{Binding ImageLink}" Width="110" />
  <TextBlock Text="{Binding Description}" 
    HorizontalAlignment="Center" 
    VerticalAlignment="Center" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

答案更新:

听起来像个好主意,除非它不起作用.

我试过你的代码,结果如下:

在此输入图像描述

左图是当我设置Color属性WhiteShadowDepth10.

Shi*_*mmy 7

我这样做了,它有助于:

<Style x:Key="AnnotationStyle" TargetType="TextBlock">
  <Setter Property="Background" Value="#70FFFFFF" />
  <Setter Property="FontWeight" Value="Bold" />
  <Setter Property="HorizontalAlignment" Value="Center"/>
  <Setter Property="VerticalAlignment" Value="Center"/>
  <Setter Property="TextAlignment" Value="Center"/>
  <Setter Property="TextWrapping" Value="Wrap"/>
  <Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
      <Setter Property="Background" Value="#CCFFFFFF" />
    </Trigger>
  </Style.Triggers>
</Style>

....

<TextBlock ... Style="{StaticResource AnnotationStyle}"/>
Run Code Online (Sandbox Code Playgroud)

这是它的样子:
在此输入图像描述