在自定义控件中加载图像的问题

时间:2011-12-21 05:41:35

标签: windows-phone-7.1 windows-phone-7

我是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 !!

有什么想法吗?!

1 个答案:

答案 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}}" />