WPF学习(12)-Image图像控件+GroupBox标题容器控件

news2024/9/20 20:31:46

Image图像控件

Image也算是独门独户的控件,因为它是直接继承于FrameworkElement基类。

Image控件就是图像显示控件。Image类能够加载显示的图片格式有.bmp、.gif、.ico、.jpg、.png、.wdp 和 .tiff。要注意的是,加载.gif动画图片时,仅显示第一帧。如果要显示gif图片,可以在nuget服务器中下载WpfAnimatedGif组件。

属性成员

  • StretchDirection:枚举型,表示图像缩放的条件,UpOnly表示内容仅在小于父级时缩放;DownOnly表示内容仅大于父级时缩放;Both表示兼容前面两种缩放条件。
  • Stretch:枚举型,表示图像缩放的模式,None表示内容保持其原始大小;Fill表示调整内容大小以填充目标尺寸,且不保留纵横比;Uniform表示在保留纵横比基础上缩放;UniformToFill表示在保留纵横比基础上缩放,同时具有裁剪功能。
  • Source:图像源,其类型为ImageSource。
  • BaseUri:获取或设置基 统一资源标识符 (URI) 为 System.Windows.Controls.Image。

事件成员

  • DpiChanged:显示图像的屏幕的 DPI 发生更改后触发。
  • ImageFailed:在图像中失败时触发。

Image控件分析

Image控件最关键的就是Source属性——即ImageSource类型。ImageSource是一个抽象类,表示具有高度、宽度及ImageMetadata对象的图像数据源。

ImageSource有多个子类,如BitmapFrame、BitmapSource和DrawingImage。所以,我们如果要显示一张图片,需要将图片转化成BitmapSource或DrawingImage实例,赋值给Image控件的Source属性就行了。

常规图片加载

        <!-- <Image Source="/Images/R-C.jpg" Width="120" Height="120"/> -->
        <Image Source="pack://application:,,,/Images/R-C.jpg" Width="120" Height="120"/>

统一资源标识Uri
WPF引入了统一资源标识Uri来标识和访问资源。其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径,协议:pack://,授权:有两种。

  • 一种用于访问编译时已经知道的文件,用application:///
  • 一种用于访问编译时不知道、运行时才知道的文件,用siteoforigin:///

一般用逗号代替斜杠,也就是改写作application:,pack:,

路径:分为绝对路径和相对路径。一般选用相对路径,普适性更强。

注意:
明明Source是ImageSource类型,为什么可以接受一个代表图片路径的字符串呢?因为ImageSource类中有一个ToString()重载成员。

本地图片加载

我们把这个张图片放到Debug目录中,试试用另一种方式加载本地图片。

在这里插入图片描述

此时,这张图片并没有导入到项目中,我们来看一下如何加载本地图片。

前端代码

         <WrapPanel>
             <Image Source="/Images/R-C.jpg" Width="120" Height="120"/>
             <Image x:Name="image2" Width="120" Height="120"/>
         </WrapPanel>

后端代码

    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
            var path = Environment.CurrentDirectory + "\\" + "R-C.jpg";
            var imageSource = BitmapFrame.Create(new Uri(path), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
            image2.Source = imageSource;
        }
    }

在这里插入图片描述

在主窗体的构造函数中,我们获取了图片的完整地址,然后利用BitmapFrame类Create方法成员将本地图片加载进来并返回一个BitmapFrame对象,BitmapFrame对象继承于BitmapSource,所以我们可以将这个实例通过C#代码的方式赋值给image2的Source属性。

GroupBox标题容器控件

GroupBox控件的功能是提供一个带标题的内容容器,它继承于HeaderedContentControl类,HeaderedContentControl继承于ContentControl类。通常它用来做一些局部的布局。

<GroupBox Header="缩略图" Margin="5">
             <WrapPanel>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
                 <Border BorderBrush="LightGray" BorderThickness="1" CornerRadius="5" Padding="3" Margin="3">
                     <Image Source="pack://application:,,,/Images/R-C.jpg" Width="100" Height="100"/>
                 </Border>
             </WrapPanel>
         </GroupBox>

在这里插入图片描述

因为GroupBox的Content属性只能显示一个内容对象如果要显示多个对象,那把给Content一个集合控件,比如上面的WrapPanel控件,这样就可以在WrapPanel控件中放多个子元素了。

在使用上,有一个集合控件与GroupBox类似,因为GroupBox只能显示一个区域,如果区域过大,在有限的窗体无法全部显示出来,该怎么办呢?ScrollViewer可以做到这一点。后续会给大家说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

58 mysql 存储引擎之 MEMORY

前言 我们这里来看一下 MEMORY 存储引擎, 我们常见的那些 临时表什么的, 都是基于 MEMORY 在之前 我们也曾经调试过 相关内存临时表的信息 它主要是 使用 hp_scan, hp_find_record 等等 api 来操作内存中的信息 我们这里基于 information_schema.TABLES 这张基于 MEMORY 的…

6.3.面向对象技术-设计模式

设计模式 设计模式创建型模型速记口诀 结构型设计模式速记口诀 行为型设计模式速记口诀 练习题 设计模式 上午2-4分&#xff0c;记忆点很多 要具体了解推荐看书籍《大话设计模式》 架构模式&#xff1a;软件设计中的高层决策&#xff0c;例如C/S结构就属于架构模式&#xff0…

赛盈分销亮相AI科技大会暨亚马逊新增长大会,与企业共话跨境品牌发展新机遇!

八月开端&#xff0c;由知无不言与xmars和钱老师课堂联合主办的2024年AI科技大会暨亚马逊新增长大会在深圳宝安顺利开展&#xff0c;为期2天的跨境峰会吸引了上千位优秀的卖家朋友前来感受一场盛夏大狂欢。在本次跨境峰会里&#xff0c;邀请了多位不同领域的先锋人物&#xff0…

在国产芯片上实现YOLOv5/v8图像AI识别-【2.4】导出RKNN模型(第一部分:模型修改)更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 基础…

挖矿木马攻破了服务器

最近被国外的挖矿木马攻破了服务器 根据非法登录&#xff0c;用 #last指令查看登录ip 首先删掉登录主机 #kill -9 pts/0 第二步 #top 看看什么占用cpu高 第三步杀死狂刷CPU的服务 过一分钟后&#xff0c;服务又开始狂刷cpu。 第四步根据pid查到服务地址 #systemctl status…

frameworks 之ServiceManager

frameworks 之ServiceManager 解析启动入口启动AIDL实现类客户端Bp发送讲解1. 获取 BpServiceManager创建代理类 ServiceManagerShim 返回调用对应AIDL方法调用驱动通知 服务端Bn接收讲解注册Binder回调监听Binder消息处理 备注 ServiceManager 作为android中的路由器提供服务注…

正则表达式扩展应用

使用扩展正则表达式 egrep 首先来看一条前面章节学习过的用来去除空白行和注释行的指令&#xff1a; grep -v ^$ regular_express.txt |grep -v ^# 可见&#xff0c;通常的 grep 指令需要使用两次管线命令。那么如果使用扩展正则表达式&#xff0c;则可以简化为&#xff1a;…

4K YouTube to MP3 Pro:跨平台音频提取与转换的好用工具

4K YouTube to MP3 Pro是一款专为追求高品质音频体验的用户设计的跨平台&#xff08;支持Mac与Windows&#xff09;音频提取与转换软件。该软件以其卓越的音频提取能力和简便的操作流程&#xff0c;在同类产品中脱颖而出&#xff0c;成为众多用户的心头好。 功能强大&#xff…

股吧评论自动采集工具推荐,一学就会

股市波动无常&#xff0c;股民情绪更是难以捉摸。但想象一下&#xff0c;如果能即时掌握东方财富网股吧里股民的热议话题与情绪倾向&#xff0c;那将对您的投资决策带来怎样的影响&#xff1f;本文将为您揭晓一款易于上手的股民评论自动采集工具&#xff0c;助您把握市场脉搏&a…

钉耙编程(5)

1008 猫咪们狂欢 分析&#xff1a; 会创建一个二分图 代码&#xff1a; #include <bits/stdc.h> #define ll long long #define INF 1e9 using namespace std; const int N10005; const int M100010; struct edge{ll v,c,ne; }e[M]; int h[N],idx1; int d[N],cur[N]; …

武汉流星汇聚:跨境电商行业的快速崛起者,以实力与口碑铸就辉煌

在跨境电商这片充满机遇与挑战的蓝海中&#xff0c;武汉流星汇聚电子商务有限公司如同一颗迅速升起的新星&#xff0c;以其独特的经营模式、专业的服务团队和卓越的业绩表现&#xff0c;在短短几年内实现了跨越式的发展&#xff0c;成为了业界内外瞩目的焦点。 自2019年成立以…

【重要通知】关于公众号、淘宝店铺、CSDN等平台更名的公告

尊敬的粉丝/用户朋友们&#xff1a; 您们好&#xff01; 感谢您一直以来对我们平台的支持与信任&#xff01;由于我们已经取得了作品登记证书&#xff0c;平台的名称和登记证书著作权人名称不一致&#xff0c;在打击盗版、防伪标识方面&#xff0c;对我们造成了一定的困扰 &am…

【漏洞复现】某赛通数据泄露防护(DLP)系统 NetSecConfigAjax SQL注入漏洞

0x01 产品简介 某赛通新一代数据泄露防护系统&#xff08;简称 DLP&#xff09;&#xff0c;以服务企事业单位进行数据资产梳理、数据安全防护为目标。系统采用平台化管理&#xff0c;将终端DLP、网络DLP、邮件DLP、存储扫描DLP、API 接口DLP 进行统一管理&#xff0c;模块化控…

共话肿瘤免疫壮丽里程 —— I-O Asia亚洲肿瘤诊疗与药物创新峰会9月广州启程

在2024年的今天&#xff0c;癌症的阴影依然笼罩着全球&#xff0c;它以其无声的侵袭&#xff0c;成为威胁人类健康的隐形杀手。根据国际癌症研究机构&#xff08;IARC&#xff09;的最新数据&#xff0c;全球癌症的发病率持续上升&#xff0c;预计在未来几年内&#xff0c;新发…

事务性邮件接口API如何集成以实现自动化?

事务性邮件接口API有哪些优势&#xff1f;邮件接口API集成方法&#xff1f; 通过集成事务性邮件接口API&#xff0c;企业可以实现邮件发送的自动化&#xff0c;提高效率&#xff0c;增强用户体验。AokSend将探讨如何集成事务性邮件接口API以实现自动化&#xff0c;并提供一些最…

仓储物流管理系统是什么?

仓储物流管理系统&#xff08;Warehouse Management System, WMS&#xff09;是一种专门设计用于管理和优化仓库操作的先进软件解决方案。这类系统的主要目的在于帮助企业在其仓库内更加高效地处理货物的接收、存储、拣选、包装及最终发货等一系列复杂的流程。以下是一些该系统…

Python 爬取网页水务数据并实现智慧水务前端可视化

提示&#xff1a;本文爬取深圳市环境水务集团有限公司的公开数据作为数据样例进行数据分析与可视化。 文章目录 一、爬虫二、对爬取的数据进行数据库、excel的存储与数据处理1.代码实现 三、应用Flask框架将后端获取数据后渲染到前端四、前端Echarts的使用1.下载echarts.min.js…

RHCA III之路---EX436-10

RHCA III之路---EX436-10 1. 题目2. 解题3. 验证 1. 题目 2. 解题 nodea上执行 pcs constraint location cluster436 prefers nodeb.private.example.com pcs constraint location cluster436 avoids nodea.private.example.com3. 验证 pcs resource curl 172.25.250.80

SAP通过代码函数创建定制/工作台/副本请求创建

注意事项&#xff1a;会跟标准的一样创建完毕会跳出来框框 DATA iv_new_request_type TYPE e070-trfunction. DATA es_new_request TYPE trwbo_request_header. DATA et_new_tasks TYPE trwbo_request_headers. DATA ev_request_changed LIKE trpari-w_v…

Nginx 学习总结

Nginx是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。 一、Nginx的特点 高性能&#xff1a;Nginx使用事件驱动模型&#xff0c;可以同时处理大量的并发连接&#xff0c;而且在高负载和大流量情况下仍然能够保持良好的性能。官方测试能够…