• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Dreama
只想要简简单单的快乐!
博客园    首页    新随笔    联系   管理     
WPF引用外部资源(样式、文件等)方式

具体代码请下载 项目文件

注:本项目使用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

posted on 2025-04-13 15:25  Dreamma  阅读(248)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3

© 本文章版权归 Dreama 所有, 转载授权请联系: cnxy@88.com

如果本文对您有帮助,欢迎支持原创

支付宝

支付宝扫码支持

微信

微信赞赏支持