将 WPF 中的图像源绑定到 URL

2024-01-04

我一直在浏览不同的帖子,试图找出我的问题出了什么问题。基本上我的用户控件上有一个 Image 标签,以及我想绑定到 url 的 Source。然而这不起作用。我尝试过使用返回的 ValueConverterBitmapImage(new Uri((string)value));但这不起作用。我唯一能得到的是你不能绑定到一个网址,你必须下载你想要绑定的图像。我不想下载我搜索的所有图像。是否有解决方法可以完成此任务,而无需在本地下载图像。我认为 ValueConverter 方法返回 BitmapImage 是最好的。请帮忙?

public class MyViewModel
{
    private string _posterUrl;
        public string PosterUrl
        {
            get
            {
                //Get Image Url, this is an example and will be retrieved from somewhere else.
                _posterUrl = "http://www.eurobuzz.org/wp-content/uploads/2012/08/logo.jpg";
                return _posterUrl;    
            }
            set 
            { 
                _posterUrl = value;
                NofityPropertyChanged(p => p.PosterUrl);
            }
        }
}

这是我的值转换器:

public class BitmapImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if(value is string)
            return new BitmapImage(new Uri((string)value, UriKind.RelativeOrAbsolute));

        if(value is Uri)
            return new BitmapImage((Uri)value);

        throw new NotSupportedException();
    }

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

这是我的 XAML:

<Image Source="{Binding PosterUrl, Converter={StaticResource bitmapImageConverter}}" Width="100" Height="100" />

因此,它绑定到包含 imageurl 的 PosterUrl 属性,并将其转换为位图图像。有任何想法吗?


Try it

<Image Helpers:ImageAsyncHelper.SourceUri="{Binding Url, IsAsync=True}" x:Name="img" />

Where

using System;
using System.Windows;
using System.Windows.Data;
using System.Windows.Controls;

public class ImageAsyncHelper : DependencyObject {
    public static Uri GetSourceUri(DependencyObject obj){
        return (Uri)obj.GetValue(SourceUriProperty);
    }

    public static void SetSourceUri(DependencyObject obj, Uri value){
        obj.SetValue(SourceUriProperty, value);
    }

    public static readonly DependencyProperty SourceUriProperty =
        DependencyProperty.RegisterAttached("SourceUri",
            typeof(Uri),
            typeof(ImageAsyncHelper),
            new PropertyMetadata { PropertyChangedCallback = (obj, e) =>
                ((Image)obj).SetBinding(
                    Image.SourceProperty,
                    new Binding("VerifiedUri"){
                        Source = new ImageAsyncHelper{
                            _givenUri = (Uri)e.NewValue
                        },
                        IsAsync = true
                    }
                )
            }
        );

    private Uri _givenUri;
    public Uri VerifiedUri {
        get {
            try {
                System.Net.Dns.GetHostEntry(_givenUri.DnsSafeHost);
                return _givenUri;
            }
            catch (Exception) {
                return null;
            }
        }
    }
}

And

public Uri Url {
    get {
        return new Uri(SomeString, UriKind.Absolute);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 WPF 中的图像源绑定到 URL 的相关文章

  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 如何在谷歌地图多边形内绘制直线

    我使用创建了谷歌地图google map javascript API V3 我正在绘制邮政编码多边形的数量 根据某些条件 多边形具有不同的颜色 现在我想根据某些标准在某些多边形内绘制直线 散列标记 我们怎样才能做到呢 下面是我为绘制多边形
  • PyDev 无法在 Eclipse 中工作

    我最近不得不重置我的 PC 重新启动 Eclipse 后出现此错误 id org python pydev editor PythonEditor 没有编辑器描述符 我尝试寻找解决方案 但其他人喜欢here https stackoverf
  • 创建新的 Google 日历

    我想使用 Android 应用程序在现有帐户上创建新的 Google 日历 例如this http sourceforge net projects lngooglecalsync Windows 应用程序确实如此 该应用程序使用 Gdat
  • 如何更改 :focus 上文本区域的边框颜色

    我想改变焦点上 TEXTAREA 的边框颜色 但我的代码似乎无法正常工作 代码已开启fiddle http fiddle jshell net ffS4S
  • PHP cURL、POST JSON

    我需要发布以下 JSON 代码 但由于某种原因它不起作用 下面是我的代码 fieldString 395609399 the curl request processor function processCurlJsonrequest UR
  • 在并行任务期间跟踪失效的 WebDriver 实例

    我看到一些使用 Selenium WebDriver 运行并行嵌套循环 Web 压力测试的死实例怪异现象 简单的例子是 比如说 点击 300 个独特的页面 每个页面有 100 次展示 我 成功 获得 4 8 个 WebDriver 实例Th
  • 如何在 YouTube 缩略图上叠加播放按钮

    在我正在进行的一个项目中 我们将媒体团队发布的大量 YouTube 视频提取到数据库中 以便我们可以将它们呈现为相关内容 我们希望能够在生成的 YouTube 缩略图上叠加一个播放按钮 以便更明显地表明缩略图代表的是可以播放的视频 我正在寻
  • 有没有办法在Linux平台上编译微软风格的内联汇编代码?

    正如标题中提到的 我想知道有没有办法在 Linux 操作系统 例如 ubuntu 中编译微软风格的内联汇编代码 如下所示 asm mov edi A EMMS 示例代码是内联汇编代码的一部分 可以在win10上使用cl exe编译器成功编译
  • 如何在 Android 中将提示文本置于 EditText 中?

    我需要将提示文本居中EditText在安卓中 我该怎么做呢 为了使提示文本居中以与 EditText 一起使用 您必须确保定义 android ellipsize start 我不知道为什么这会起作用 但确实如此 从个人代码中提取的示例
  • SQL 多重外连接(将 t-sql 连接转换为 ANSI 格式)

    我有 3 个表 t1 t2 t3 我想要一个基于以下条件的结果集 t1 在 t2 t1 的所有行 上有外连接 t1 在 t3 t1 的所有行 上有外连接 t2 在 t3 t2 的所有行 上有外连接 如何在单个查询中使用这些外部 3 个联接
  • 如何按顺时针/逆时针方向对所有多边形点进行排序?

    我一直在阅读贾维斯的算法 虽然它能够按顺时针方向对所有 外部点 进行排序 但内部点将被忽略 如下所示 有谁知道我是否必须实现任何其他算法或任何其他方法来按顺时针方向对每个点进行排序 谢谢 第一步格雷厄姆扫描 https en wikiped
  • 如何允许用户在 Web 应用程序中编辑附件?

    我们使用 ASP NET 创建了一个 Web 应用程序 允许用户上传文档并将其附加到业务实体 如客户 联系人等 该应用程序在内联网上运行 所有文件都通过 Web 应用程序上传到服务器上的共享文件夹中 我希望用户可以直接从网页上open实际文
  • 并行运行 junit 测试时的竞争条件

    我想知道如果我并行运行测试并且两个测试 如下 共享一个实例变量 是否会有一些竞争条件 所以我的测试类使用 SpringJunit4ClassRunner 运行 并且我有 2 个测试方法 a 和 b 变量state将从每个测试中修改或重新分配
  • 如何使用 ”!”作为注释指示符,还可以在语言语法高亮中使用 NOT 运算符吗?

    我正在使用 VScode 并创建自己的语言扩展来突出显示语法 其中我需要使用正则表达式来查找注释 基本规则是之后的一切 是一个注释 但是有一个特殊情况 什么时候 在里面eval 命令 它的意思是NOT 例如 我的一些代码如下所示 if co
  • PySpark DataFrame 列参考:df.col 与 df['col'] 与 F.col('col')?

    我有一个概念希望你能帮忙澄清 以下三种引用 PySpark 数据框中列的方式有什么区别 我知道不同的情况需要不同的形式 但不知道为什么 df col e g F count df col df col e g df col 0 F col
  • C# 语法中的问号[重复]

    这个问题在这里已经有答案了 可能的重复 使用条件 三元 运算符的好处 https stackoverflow com questions 3312786 benefits of using the conditional ternary o
  • numpy 矩阵代数最佳实践

    我的问题是关于下面最后一行 mu sigma mu 为什么它有效 一维 ndarray 被视为行向量还是列向量 不管怎样 不应该是这样吗mu T sigma mu or mu email protected cdn cgi l email
  • 使用requirejs优化和加载外部依赖

    我有一个需要 Facebook SDK 的模块 我想知道应该如何配置 SDK 的加载 以便 RequireJS 优化器正确处理它 In app require config paths facebook connect facebook n
  • 在每个url末尾添加斜杠(需要重写nginx规则)

    我尝试得到一个 到每个网址结尾 example com art should example com art I use nginx作为网络服务器 我需要为此重写规则 为了更好地理解 请检查以下内容 http 3much schnicksc
  • 将 WPF 中的图像源绑定到 URL

    我一直在浏览不同的帖子 试图找出我的问题出了什么问题 基本上我的用户控件上有一个 Image 标签 以及我想绑定到 url 的 Source 然而这不起作用 我尝试过使用返回的 ValueConverterBitmapImage new U