【问题标题】:The Resource 'ImageConverter' could not be resolved无法解析资源“ImageConverter”
【发布时间】:2012-10-27 15:46:29
【问题描述】:

我是 Windows phone 和 silverlight 开发的新手。在我的学习练习中,我遇到了一个错误,我在这篇文章的标题中提到了这个错误。

我的主要目标是将图像文件保存和检索到 SQLCE 数据库,我使用了本教程http://antonswanevelder.com/2011/10/28/writing-an-image-to-sql-ce-linq-to-sql/

但是,我对这段代码 sn-p 有问题

<Image Source="{Binding ItemImage, Converter={StaticResource ImageConverter}}" Stretch="UniformToFill"/>

我的想法是编译器无法找到资源 ImageConverter。我真的需要这方面的帮助。

我的代码是: MainPage.xaml

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="CallListListBoxItemTemplate">
        <StackPanel Orientation="Vertical">
            <TextBlock Text="{Binding CallName}" Foreground="DarkCyan" FontSize="{StaticResource PhoneFontSizeLarge}"
                       VerticalAlignment="Top" Margin="12,12,0,0"/>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="PersonalInfoListBoxItemTemplate">
        <Grid >
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Image Source="{Binding PersonImage, Converter={StaticResource ImageConverters}}" Stretch="UniformToFill" Name="_personPhoto" />

MainPage.xaml.cs

public class ImageConverters : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value is byte[])
        {
            MemoryStream ms = new MemoryStream(value as byte[]);
            WriteableBitmap wb = PictureDecoder.DecodeJpeg(ms, 100, 100);
            return wb;
        }
        else
        {
            return null;
        }

    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

【问题讨论】:

    标签: c# silverlight windows-phone-7 xaml ivalueconverter


    【解决方案1】:

    让我们考虑一下您的值转换器位于 ProjectName.Converters 命名空间中。

    在xaml中你需要添加一个命名空间:

    <phone.PhoneApplicatinPage
            .. all your code here
          xmlns:converters="clr-namespace;ProjectName.Converters"  
          >
    

    在资源标签中:

       <phone:PhoneApplicationPage.Resources>
         <converters:ImageConverters x:Key="ImageConverter"/>
          <!- your DataTemplates here-->
    

    还有小教程让你更熟悉IValueConverterhere

    【讨论】:

      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多