WPF调用图片路径,或资源图片

摘要:
Uri表达式的一般形式为:协议+授权+路径协议:pack://authorization:有两种。通常使用相对路径,这些路径更通用。下面是一个简单的例子:pack://application:、、、/images/my。jpg当然,WPF的默认Uri设置是pack://application:、、、,所以我们也可以直接编写它:/images/my当使用jpg编写示例程序时,我们都使用完整的Uri编写方法来让读者更好地理解Uri。这里有两种加载图像的方法:一种是使用XAML引用资源,另一种是用代码引用资源。

一、加载本项目的图片
WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。
其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径
协议:pack://
授权:有两种。一种用于访问编译时已经知道的文件,用application:///
一种用于访问编译时不知道、运行时才知道的文件,用siteoforigin:///
一般用逗号代替斜杠,也就是改写作application:,,,和pack:,,,
路径:分为绝对路径和相对路径。一般选用相对路径,普适性更强
下面,我们举一个简单的例子:
pack://application:,,,/images/my.jpg
当然,WPF默认Uri设置有pack://application:,,,,所以我们也可以直接将其写作:/images/my.jpg
后边写例子程序时,为了让读者更好的了解Uri,我们都采用完整的Uri写法。
下面在讲讲装载图片的两种方式,一种用XAML引用资源,一种用代码引用资源。
用XAML引用资源:

<Image Source="pack://application:,,,/images/my.jpg"/>

也可以这样

<Image Source="/images/my.jpg"/>

用代码引用资源:

Image img;
img.Source=new BitmapImage(new Uri("pack://application:,,,/images/my.jpg"),UriKind.Relative);

也可以直接使用代码中引用图片资源

image2.Source = new BitmapImage(new Uri("/images/my.jpg", UriKind.Relative));

二、WPF 调用资源图片

imagePath = "pack://application:,,,/Solution;component/Properties/../images/star/my.jpg";
imageBrush.ImageSource = new BitmapImage(new Uri(imagePath, UriKind.RelativeOrAbsolute));

三、WPF引用外部项目资源的方法
WPF中如果你使用的资源文件不是本程序集的,是另外的程序集,就可以这样做:
1.引用要用的程序集,pack://application:,,,/程序集名称;component/路径 ,其中pack://application:,,,可以省略
示例:

<Image Source="pack://application:,,,/Skin;component/image/you.png" />

或者

<Image Source="/Skin;component/image/you.png" />

四、使用SiteOfOrigin

imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/images/my.jpg"));

免责声明:文章转载自《WPF调用图片路径,或资源图片》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LTP(LinuxTest Project)测试工具C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用springcloud gateway搭建网关(分流,限流,熔断)

Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gatewa...

WPF 解决文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题

背景 最近遇到一个动画执行时,文本位置变化的问题。如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素。 貌似有点莫名其妙,因为控件之间并不在同一个Panel布局控件中,不存在高度限制变化引发此类问题。所以有了如下测试 测试场景 字体类型影响 1. 首先新建了一个空项目,前面是一个带阴影的文本,后面用一张普通图片循环变更它的高度。尝试了下,还是...

WPF 打开文件 打开路径对话框

WPF调用WinForm中的 OpenFileDialog 和 FolderBrowserDialog 来实现响应的功能 OpenFileDialog openFileDialog = newOpenFileDialog(); openFileDialog.Title = "选择文件"; openFileD...

WPF:菜单

原文:http://blog.csdn.net/sheila_1988/article/details/7280195 1、Menu Menu 是水平放置它的项的,默认情况下把灰色栏作为背景。 把Menu 添加到它的ItemsControl 基类的唯一公开的API 是IsMainMenu 属性。当为true(默认的)时,用户按下Alt 或者F10 键,...

WPF-带有GridView的ListView样式

ListView是展示数据的常用控件,这里简单对带有GridView的ListView样式进行设置。 <Style TargetType="{x:Type ListViewItem}"> <Style.Triggers> <Trigger Property="IsSel...

WPF线程

跨线程调用控件 WPF应用程序都至少有两个线程,一个用于UI绘制,其隐藏于后台,另一个用于管理UI。WPF中UI元素只能由创建该元素的线程来访问。Dispatcher类来负责线程的组织和维护。通用的解决方法是使用提供的Dispatcher.Invoke方法来调用一个Delegate,从而安全地跨线程调用。(在winform中,是Control.Invoke...