Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF图像装订&;转换器不工作 //在xaml中 //资源 //数据上下文 DataContext=“{x:静态本地:GlobalData.CustomServiceInfo}” //图像**URI源发生异常抛出** -------------------------------------------------------------------------- //代码 //模型 公共类CustomServiceInfo { 公共字符串名称{get;set;} 公共字符串HeadPicUrl{get;set;} 公共布尔状态{get;set;} } //初始化 公共主窗口() { GlobalData.CustomServiceInfo=新的CustomServiceInfo{ Name=“奈奈古”, HeadPicUrl=@”http://avatar.csdn.net/0/5/5/1_haifengzhilian.jpg", 状态=真, //类型=新Uri(“pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg”,UriKind.RelativeOrAbsolute) //类型=”pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg” }; 初始化组件(); } //自定义转换器 公共类LocalUriToImageConverter:IValueConverter { 公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性) { 字符串路径=(字符串)值; int BytesToRead=100; 尝试 { var image=新的位图图像(); WebRequest=WebRequest.Create(新Uri(路径,UriKind.Absolute)); 请求超时=-1; WebResponse=request.GetResponse(); Stream responseStream=response.GetResponseStream(); BinaryReader=新的BinaryReader(responseStream); MemoryStream MemoryStream=新的MemoryStream(); byte[]bytebuffer=新字节[BytesToRead]; int bytesRead=reader.Read(bytebuffer,0,BytesToRead); 而(字节读取>0) { memoryStream.Write(字节缓冲,0,字节读取); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); 返回图像; } 捕获(例外) { 返回新的BitmapImage(); } } 公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性) { 抛出新的NotImplementedException(); } }_C#_Wpf - Fatal编程技术网 0) { memoryStream.Write(字节缓冲,0,字节读取); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); 返回图像; } 捕获(例外) { 返回新的BitmapImage(); } } 公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性) { 抛出新的NotImplementedException(); } },c#,wpf,C#,Wpf" /> 0) { memoryStream.Write(字节缓冲,0,字节读取); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); 返回图像; } 捕获(例外) { 返回新的BitmapImage(); } } 公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性) { 抛出新的NotImplementedException(); } },c#,wpf,C#,Wpf" />

C# WPF图像装订&;转换器不工作 //在xaml中 //资源 //数据上下文 DataContext=“{x:静态本地:GlobalData.CustomServiceInfo}” //图像**URI源发生异常抛出** -------------------------------------------------------------------------- //代码 //模型 公共类CustomServiceInfo { 公共字符串名称{get;set;} 公共字符串HeadPicUrl{get;set;} 公共布尔状态{get;set;} } //初始化 公共主窗口() { GlobalData.CustomServiceInfo=新的CustomServiceInfo{ Name=“奈奈古”, HeadPicUrl=@”http://avatar.csdn.net/0/5/5/1_haifengzhilian.jpg", 状态=真, //类型=新Uri(“pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg”,UriKind.RelativeOrAbsolute) //类型=”pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg” }; 初始化组件(); } //自定义转换器 公共类LocalUriToImageConverter:IValueConverter { 公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性) { 字符串路径=(字符串)值; int BytesToRead=100; 尝试 { var image=新的位图图像(); WebRequest=WebRequest.Create(新Uri(路径,UriKind.Absolute)); 请求超时=-1; WebResponse=request.GetResponse(); Stream responseStream=response.GetResponseStream(); BinaryReader=新的BinaryReader(responseStream); MemoryStream MemoryStream=新的MemoryStream(); byte[]bytebuffer=新字节[BytesToRead]; int bytesRead=reader.Read(bytebuffer,0,BytesToRead); 而(字节读取>0) { memoryStream.Write(字节缓冲,0,字节读取); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); 返回图像; } 捕获(例外) { 返回新的BitmapImage(); } } 公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性) { 抛出新的NotImplementedException(); } }

C# WPF图像装订&;转换器不工作 //在xaml中 //资源 //数据上下文 DataContext=“{x:静态本地:GlobalData.CustomServiceInfo}” //图像**URI源发生异常抛出** -------------------------------------------------------------------------- //代码 //模型 公共类CustomServiceInfo { 公共字符串名称{get;set;} 公共字符串HeadPicUrl{get;set;} 公共布尔状态{get;set;} } //初始化 公共主窗口() { GlobalData.CustomServiceInfo=新的CustomServiceInfo{ Name=“奈奈古”, HeadPicUrl=@”http://avatar.csdn.net/0/5/5/1_haifengzhilian.jpg", 状态=真, //类型=新Uri(“pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg”,UriKind.RelativeOrAbsolute) //类型=”pack://application:,,,/“+”MahAppsDemo“+”组件/“+”图像/my.jpg” }; 初始化组件(); } //自定义转换器 公共类LocalUriToImageConverter:IValueConverter { 公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性) { 字符串路径=(字符串)值; int BytesToRead=100; 尝试 { var image=新的位图图像(); WebRequest=WebRequest.Create(新Uri(路径,UriKind.Absolute)); 请求超时=-1; WebResponse=request.GetResponse(); Stream responseStream=response.GetResponseStream(); BinaryReader=新的BinaryReader(responseStream); MemoryStream MemoryStream=新的MemoryStream(); byte[]bytebuffer=新字节[BytesToRead]; int bytesRead=reader.Read(bytebuffer,0,BytesToRead); 而(字节读取>0) { memoryStream.Write(字节缓冲,0,字节读取); bytesRead=reader.Read(bytebuffer,0,BytesToRead); } image.BeginInit(); memoryStream.Seek(0,SeekOrigin.Begin); image.StreamSource=memoryStream; image.EndInit(); 返回图像; } 捕获(例外) { 返回新的BitmapImage(); } } 公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性) { 抛出新的NotImplementedException(); } },c#,wpf,C#,Wpf,异常消息是{“必须设置“UriSource”或“StreamSource”。}。 我认为转换没有工作,因为我在convert方法中设置了调试点,但在此之前抛出了异常 我不知道我上面的代码哪里出错了。 这是我在stackoverflow中的第一个问题。 请帮助我。谢谢!子控件在图像中定义。参考资料在图像中定义。请按如下方式更新xaml代码: //in xaml //resource <local:LocalUriToImageConverter x:Key="MyImageCo

异常消息是
{“必须设置“UriSource”或“StreamSource”。}

我认为转换没有工作,因为我在convert方法中设置了调试点,但在此之前抛出了异常 我不知道我上面的代码哪里出错了。 这是我在stackoverflow中的第一个问题。
请帮助我。谢谢!

子控件在图像中定义。参考资料在图像中定义。请按如下方式更新xaml代码:

  //in xaml
  //resource
  <local:LocalUriToImageConverter x:Key="MyImageConverter"/>
  //datacontext
  DataContext="{x:Static local:GlobalData.CustomServiceInfo}"
  //image **exception throw at UriSource ** 
  <Image Height="60" Width="60" >
            <Image.Resources>
                <BitmapImage UriSource="{Binding HeadPicUrl , Converter={StaticResource MyImageConverter}}" x:Key="image1"  />
                <FormatConvertedBitmap Source="{StaticResource image1}" x:Key="formattedImage" DestinationFormat="Gray32Float" />
            </Image.Resources>
            <Image.Style>
                <Style  TargetType="Image">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Status}" Value="True">
                            <Setter Property="Source" Value="{StaticResource image1}"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Status}" Value="False">
                            <Setter Property="Source" Value="{StaticResource formattedImage}"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
  </Image>

  --------------------------------------------------------------------------
  //Code
  //model
  public class CustomServiceInfo
    {
        public string Name { get; set; }
        public string HeadPicUrl { get; set; }
        public bool Status { get; set; }

    }
 //init
 public MainWindow()
        {

        GlobalData.CustomServiceInfo = new CustomServiceInfo {
            Name = "nainaigu",
            HeadPicUrl = @"http://avatar.csdn.net/0/5/5/1_haifengzhilian.jpg",
            Status = true ,
            //Type = new Uri("pack://application:,,,/" + "MahAppsDemo" + ";component/" + "Image/my.jpg", UriKind.RelativeOrAbsolute)
            //Type = "pack://application:,,,/" + "MahAppsDemo" + ";component/" + "Image/my.jpg"
        };

        InitializeComponent();
      }

   //Custom Coverter 
   public class LocalUriToImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string path = (string)value;
            int BytesToRead = 100;
            try
            {
                var image = new BitmapImage();
                WebRequest request = WebRequest.Create(new Uri(path, UriKind.Absolute));
                request.Timeout = -1;
                WebResponse response = request.GetResponse();
                Stream responseStream = response.GetResponseStream();
                BinaryReader reader = new BinaryReader(responseStream);
                MemoryStream memoryStream = new MemoryStream();

                byte[] bytebuffer = new byte[BytesToRead];
                int bytesRead = reader.Read(bytebuffer, 0, BytesToRead);

                while (bytesRead > 0)
                {
                    memoryStream.Write(bytebuffer, 0, bytesRead);
                    bytesRead = reader.Read(bytebuffer, 0, BytesToRead);
                }

                image.BeginInit();
                memoryStream.Seek(0, SeekOrigin.Begin);

                image.StreamSource = memoryStream;
                image.EndInit();
                return image;
            }
            catch (Exception)
            {
                return new BitmapImage();
            }

        }

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


异常附带堆栈跟踪,您应该始终提供有关任何错误和异常的完整信息。包括堆栈跟踪。至于转换器,这是一个相当不错的转换器,你有;你真的应该用另一种方式来处理这个问题……转换器不应该包含像那样复杂、耗时的操作。如果您希望在这方面获得更多帮助,请提供一个可靠地再现问题的好方法。我很抱歉。我记得。这是我第一次。你能告诉我如何再次编辑我的问题吗。请查看你文章底部的链接。谢谢。我再次编辑。并添加一张关于表达式的图片。为什么你在图像中定义了
BitmapImage
FormatConvertedBitmap
。资源?为什么不能将
放入图像资源。这是ide允许的。这只是一个编译错误。我从http URI字符串加载了一个ImageSource,并将其传递给转换器。我想这没问题。我想知道哪里出了问题。
<Image Width="45" Height="45" x:Name="headPicture" Cursor="Hand" Source="{Binding HeadPicUrl, Converter={StaticResource MyImageConverter}}" >               
            <Image.Style>
                <Style  TargetType="Image">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Status}" Value="True">
                            <Setter Property="Source" Value="{StaticResource image1}"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Status}" Value="False">
                            <Setter Property="Source" Value="{StaticResource formattedImage}"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
  </Image>