我是WP7平台的新手,我面临一些奇怪的事情,我有一个有图像的自定义组件。 (下面的自定义组件的一部分)
<Rectangle x:Name="ImageForeground" Height="240" Width="240" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{TemplateBinding Foreground}"
DataContext="{TemplateBinding Image}"
OpacityMask="{Binding Converter={StaticResource brushConverter}}" />
这是brushConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
BitmapImage image = (BitmapImage)value;
ImageBrush imageBrush = new ImageBrush();
if (image != null)
{
imageBrush.ImageSource = image;
}
return imageBrush;
}
现在我将自定义组件添加到带有
的页面<rounded:RoundedImageView Image="/Images/image1.png"/>
这是一个奇怪的部分。该组件仅显示某些png图像!!我总共有5个,所有的Build Action属性都设置为Content。但控件只加载一些而不是全部。更奇怪的是,如果我把图像放在像这样的常规图像组件中
<Image Height="200" HorizontalAlignment="Left" Margin="54,17,0,0" Name="image3" Stretch="Fill" VerticalAlignment="Top" Width="200" Source="/Images/service_reload.png" />
有效!!! WTF !!
有什么想法吗?!
答案 0 :(得分:0)
解决: 解决:我将brushConverter绑定附加到Rectangle的Fill属性而不是OpacityMask属性,它像魅力一样工作
<Rectangle x:Name="ImageForeground" Height="240" Width="240" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{TemplateBinding Image}" Fill="{Binding Converter={StaticResource brushConverter}}" />