查看: 22|回覆: 0

WPF引用外部资源(样式、文件等)方式

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-5-18
發表於 2025-4-13 15:25:00 | 顯示全部樓層 |閲讀模式

具体代码请下载 项目文件

注:本项目使用VS2022开发环境、.NET8框架及MahApps.Metro界面UI。

摘取关键代码如下:

        <StackPanel Grid.Row="0">
            <!--  ***********************************************************************  -->
            <!--  【1】当1.jpg为当前程序集WpfTest2中的资源时(嵌入资源)  -->
            <!--  方式1  -->
            <!--<Image Source="Images/1.jpg" />-->
            <!--  方式2  -->
            <!--<Image Source="/Images/1.jpg" />-->
            <!--  方式3  -->
            <!--<Image Source="/WpfTest2;component/Images/1.jpg" />-->
            <!--  方式4  -->
            <Image Source="pack://application:,,,/WpfTest2;component/Images/1.jpg" />
            <!--  **************************************************************************  -->

            <!--  **************************************************************************  -->
            <!--  【2】当2.png为当前程序集WpfTest2中的内容且复制到输出目录时(松散文件)  -->
            <!--  方式1  -->
            <!--<Image Source="Images/2.png" />-->
            <!--  方式2  -->
            <!--<Image Source="/Images/2.png" />-->
            <!--  方式3  -->
            <!--<Image Source="/WpfTest2;component/Images/2.png" />-->
            <!--  方式4  -->
            <Image Source="pack://application:,,,/WpfTest2;component/Images/2.png" />
            <!--  **************************************************************************  -->

            <!--  **************************************************************************  -->
            <!--  【3】当3.jpg为外部程序集WpfTest2Library中的资源时(嵌入资源)  -->
            <!--  方式1  -->
            <!--<Image Source="/WpfTest2Library;component/Images/3.jpg" />-->
            <!--  方式2  -->
            <Image Source="pack://application:,,,/WpfTest2Library;component/Images/3.jpg" />
            <!--  **************************************************************************  -->
        </StackPanel>
        <StackPanel Grid.Row="2">
            <!--  **************************************************************************  -->
            <!--  【4】当a.jpg为外部文件绝对路径时(松散文件)  -->
            <!--  方式1  -->
            <!--<Image Source="C:\Users\Yan\source\repos\WpfTest2\WpfTest2\Images\a.jpg" />-->
            <!--  方式2  -->
            <Image Source="file:///C:/Users/Yan/source/repos/WpfTest2/WpfTest2/Images/a.jpg" />
            <!--  注:因以上绝对路径有可能不同,需要进行代替  -->
            <!--  **************************************************************************  -->

            <!--  **************************************************************************  -->
            <!--  【5】当2025-04-13_142530.bmp为网络URI路径时(URL)  -->
            <Image Source="https://files-cdn.cnblogs.com/files/cncc/2025-04-13_142530.bmp" />
            <!--  注:因可能能网络问题,以上图片可能无法显示  -->
            <!--  **************************************************************************  -->

        </StackPanel>

总结:

  1. 不管是嵌入式资源、松散文件,均可使用pack://application:,,,/程序集名称;component/路径1/.../文件名的方式访问资源。
    也可以省略,编译器会自动补全。
  2. 嵌入式资源:通过 pack://application:,,,/ 访问,路径严格受程序集结构约束。
  3. 松散文件/URL:使用相对路径、绝对路径,灵活性高,但需确保文件部署到位。

参考界面:

image



来源:https://www.cnblogs.com/cncc/p/18823294
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部