【问题标题】:Overlay on Image in Windows 8.1 XAMLWindows 8.1 XAML 中的图像叠加
【发布时间】:2015-04-03 10:42:23
【问题描述】:

我正在开发一个 Windows 8.1 通用应用程序。

我在我的网格视图中使用图像,它再次绑定到某个应用程序模型。 现在我想根据模型中的某些条件在图像上添加覆盖(装饰器)。 有可能吗?

干杯, 索拉夫

【问题讨论】:

  • 是的,这是可能的。将您喜欢的任何控件放在图像控件之上。你试过什么了?您的具体问题是什么?
  • @Clemens 感谢您的回复...我有一个图像,我想在父图像的右下方放置一个叠加图像。
  • 把两个 Image 控件放在一个共同的 Grid 中?

标签: c# xaml windows-8.1 win-universal-app


【解决方案1】:

如果你还没有这样做,你应该把你的图片放在 GridView.ItemTemplate 中。然后在转换器的帮助下根据条件添加可见性设置的叠加层。

<GridView.ItemTemplate>
   <DataTemplate>
      <Grid>
         <Image Source="{Binding YourSource}" /> <!-- your image -->
         <Image Source="{Binding OverlaySource}" Visibility="{Binding IsOverlayVisibleBoolean, Converter={StaticResource BooleanToVisibleConverter}" />
      </Grid>
   </DataTemplate>
</GridView.ItemTemplate>

还有你的转换器:

public class BooleanToVisibleConverter : IValueConverter
{
   public object Convert(object value, Type targetType, object parameter, string language)
   {
      if (value is Boolean)
         return (Boolean)value ? Visibility.Visible : Visibility.Collapsed;

      return Visibility.Collapsed;
   }

   public object ConvertBack(object value, Type targetType, object parameter, string language)
   {
      throw new NotImplementedException();
   }
}

【讨论】: