深入了解WPF控件:基础属性与用法(五)

掌握WPF控件:熟练常用属性(五)

Image

  • 是一种在WPF应用程序中显示图片的方式。它可以用于显示静态图片,也可以用于显示动态图片,如GIF。此外,Image控件还可以自适应大小,根据容器的大小自动调整图片大小。
常用属性描述
Source用于设置或获取图像的源,可以是Uri、BitmapImage、BitmapFrame或其他派生自ImageSource的类型。 默认值是 null
Stretch用于设置或获取在Image控件中如何拉伸图像以适合控件大小。默认值为 Uniform。可选值包括None(保存不变化)、Fill(调整大小填充目标)、Uniform(保持原有的纵横比例填充目标)和UniformToFill(保持原有的纵横比,如目标纵横比不同矩形的纵横比时则剪裁源内容。)。
StretchDirection用于设置或获取Stretch属性的方向。默认值为Both。可选值有:Both(拉伸适应父级)、UpOnly(内容仅在小于父级时扩展,大于时不变化)和DownOnly(内容仅在大于父级时缩放,如果内容交小时,不变化)。
Opacity用于设置图像的透明度,取值范围为0(完全透明)到1(完全不透明)。
Width用于设置图像的宽度。
Height用于设置图像的高度。
Clip用于定义元素内容轮廓的几何图形。
  • 下面写个例子
  • 注意图片属性生成操作要设置为资源,否则会出现图片不显示问题

注意事项

 <Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--用Source属性来设置图片资源--><Image Grid.Row="0" Source="./1.png" /><!--用Stretch属性来把图片拉伸填充到矩形,并且设置StretchDirection 拉伸方向并设置宽度200,高度50--><Image Grid.Row="1" Width="200" Height="50" Source="./1.png"  Stretch="Fill"  StretchDirection="UpOnly"/><!--利用裁剪的方式把图片裁剪成三角形,并设置透明度--><Image Grid.Row="2" Name="starImage" Source="./1.png"   Stretch="Uniform" Opacity="0.5" ><Image.RenderTransform><TransformGroup><!--这里设置了旋转45度--><RotateTransform Angle="45" /></TransformGroup></Image.RenderTransform><Image.Clip><GeometryGroup><RectangleGeometry Rect="0,0,100,100" /><PathGeometry><PathFigure StartPoint="0,0"><LineSegment Point="100,100" /><LineSegment Point="0,100" /><LineSegment Point="0,0" /></PathFigure></PathGeometry></GeometryGroup></Image.Clip></Image></Grid>

Image

ListBox

  • 是一个常用的列表控件,用于显示一个可滚动的项目列表。
常用属性描述
ItemsSource用于绑定数据源集合,用于获取或设置ListBox中所显示的项的来源。
SelectedItem用于获取或设置ListBox中所单选的项。
SelectedItem用于获取或设置ListBox中所多选的项。
ItemTemplate用于定义ListBox中每个项的展示模板,允许自定义每个项目的显示方式。
AnchorItem用于获取或设置当 SelectionMode 为 Extended 时最初选择的项。
HandlesScrolling用于获取一个值,该值之时 ListBox 是否支持滚动。如果 ListBox 支持滚动为true,否则为false。
SelectedItems用于获取当前选定的项,返回当前选定项的集合。
SelectionMode用于获取或设置 ListBox 的选择模式。默认值为单选。可选择值有:Extended(表示可以按下 Shift 键来选择多个项)、Multiple(表示可以选择多个项)、Single(单选表示只能选择一项)。
  • 下面写个例子
<Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--最简单的选项--><ListBox x:Name="myListBox1" Grid.Row="0" HorizontalAlignment="Center" Width="200" SelectionChanged="myListBox1_SelectionChanged"><ListBoxItem Content="我是ListBox选项1"/><ListBoxItem Content="我是ListBox选项2"/><ListBoxItem Content="我是ListBox选项3"/><ListBoxItem Content="我是ListBox选项4"/><ListBoxItem Content="我是ListBox选项5"/><ListBoxItem Content="我是ListBox选项6"/><ListBoxItem Content="我是ListBox选项7"/><ListBoxItem Content="我是ListBox选项8"/></ListBox><TextBlock x:Name="myListBoxTextBlock1"   Grid.Row="1" FontSize="16" Height="25" Width="230"  Background="Blue"  Foreground="White"/><!--动态加载数据--><!--设置SelectionMode为Multiple 表示可以多选--><ListBox x:Name="myListBox2" Grid.Row="2" HorizontalAlignment="Center" Width="200" Margin="0,20,0,0"  SelectionMode="Multiple" SelectionChanged="myListBox2_SelectionChanged"><ListBox.ItemTemplate><DataTemplate><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding Path=Name}" Margin="0,0,5,0"/><TextBlock Text="{Binding Path=Age}"/></StackPanel></DataTemplate></ListBox.ItemTemplate></ListBox><TextBlock x:Name="myListBoxTextBlock2"  Grid.Row="3"  Height="25"  Width="200"  FontSize="16" Background="Green"  Foreground="White"/>
</Grid>
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;namespace WpfCommonControls
{/// <summary>/// ListBox.xaml 的交互逻辑/// </summary>public partial class ListBox : Window{public ListBox(){InitializeComponent();//LoadData();}public void LoadData(){ObservableCollection<Person> items = new ObservableCollection<Person>{new Person { Name = "John", Age = 25 },new Person { Name = "Jane", Age = 30 },new Person { Name = "Doe", Age = 35 }};//绑定数据myListBox2.ItemsSource = items;}private void myListBox1_SelectionChanged(object sender, SelectionChangedEventArgs e){// 单选if (myListBox1.SelectedItem != null){ListBoxItem? lbi = myListBox1.SelectedItem as ListBoxItem;myListBoxTextBlock1.Text = $"你选择了: {lbi?.Content}";}}private void myListBox2_SelectionChanged(object sender, SelectionChangedEventArgs e){//多选myListBoxTextBlock2.Text = $"你选择了: {myListBox2.SelectedItems.Count}项";}}public class Person{public string? Name { get; set; }public int Age { get; set; }}
}

ListBox

ProgressBar

  • 用于显示进度,即某个过程完成的百分比。
常用属性描述
Value用于表示进度条的当前值,范围从0到100。
Maximum用于表示进度条的最大值。默认是100。
Minimum
IsIndeterminate用于表示操作正在进行但无法给出具体进度。如果设置为 true,则进度条会不停的动
Orientation用于指定进度条的方向。可以是水平或垂直。
Template用于自定义进度条的外观。
Background用于设置进度条的背景色。
Foreground用于色湖之进度条的前景色,通常是表示进度的颜色。
BorderBrush 和 BorderThickness分别用来设置进度条边框的颜色和厚度。
  • 下面写个例子
<Window.Resources><!--定义窗体级别资源样式--><Style x:Key="myProgressBarStyle" TargetType="{x:Type ProgressBar}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type ProgressBar}"><Grid x:Name="TemplateRoot" SnapsToDevicePixels="true"><Rectangle x:Name="PART_Track" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" RadiusX="2" RadiusY="2"/><Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left" Fill="{TemplateBinding Foreground}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" RadiusX="2" RadiusY="2"><Rectangle.LayoutTransform><ScaleTransform ScaleX="{Binding Value, RelativeSource={RelativeSource TemplatedParent}}" ScaleY="1"/></Rectangle.LayoutTransform></Rectangle></Grid></ControlTemplate></Setter.Value></Setter></Style>
</Window.Resources><Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--设置了进度条的最大值100,当前进度为70--><ProgressBar Grid.Row="0"  Width="200" Height="25" Maximum="100" Value="75" /><!--设置了属性IsIndeterminate为true,则显示动态,设置进度条方向Orientation为Vertical 表示垂直--><ProgressBar Grid.Row="1" IsIndeterminate="true" Background="LightGray" Foreground="Coral"  Width="200" Height="25"  Orientation="Vertical"/><!--这里使用窗体级别资源来显示样式--><ProgressBar Grid.Row="2"  x:Name="progressBar" Width="200" Height="25" Value="5"  Maximum="100" Style="{StaticResource myProgressBarStyle}"/></Grid>

ProgressBar

公众号“点滴分享技术猿

关注

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

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

相关文章

关于gltf模型格式文件的学习

目录 glTF模型 小黄鸭的gltf模型 字段分析 scene nodes meshes primitives attributes indices mode material accessors bufferView byteOffset count componentType type materials textures images samplers magFilter与minFilter wrapS与wrapT 进行…

高效火情监测,科技助力森林防火【数字地球开放平台】

数字地球开放平台-以卫星遥感为核心的空天信息服务开放平台 (geovisearth.com) 2019年3月30日&#xff0c;四川省凉山州木里县爆发了一场森林火灾&#xff0c;火点位于海拔3800米左右&#xff0c;地形险峻、坡度陡峭、谷深难以抵挡火势。在扑救的过程中&#xff0c;27名森林消防…

最小公倍数之和(莫比乌斯反演P3911)

路径&#xff1a; P3911 最小公倍数之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a; 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<cstring> #include<cmath> #include<…

JavaSE 万字总结知识点(期末复习指南)

目录 一.Java的特性 二.注释 三.数据类型 基本数据类型 包装类 引用数据类型 四.运算符 五.逻辑控制 选择语句 循环语句 六.数组 七.方法 八.类与对象 构造方法 内部类 九.继承和多态 十.抽象类与接口 抽象类 接口 十一.异常 一.Java的特性 Java最初由Sun…

助力焊接场景下自动化缺陷检测识别,基于YOLOv5【n/s/m/l/x】全系列参数模型开发构建工业焊接场景下缺陷检测识别分析系统

焊接是一个不陌生但是对于开发来说相对小众的场景&#xff0c;在我们前面的博文开发实践中也有一些相关的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《轻量级模型YOLOv5-Lite基于自己的数据集【焊接质量检测】从零构建模型超详细教程》 《基于DeepLabV3Pl…

【华为 ICT HCIA eNSP 习题汇总】——题目集3

1、&#xff08;多选&#xff09;IEEE 802.11n支持在哪些频率下工作&#xff1f; A、2.5GHz B、2.4GHz C、5GHz D、6GHz 考点&#xff1a;无线局域网 解析&#xff1a;&#xff08;BC&#xff09; IEEE 820.11n 支持双频段&#xff0c;它兼容IEEE 802.11a 与IEEE 820.11b 两种标…

springcloud Ribbon负载均衡服务调用

文章目录 代码下载地址简介测试 Ribbon负载均衡算法手写RoundRobinRule源码8001/8002微服务改造80订单微服务改造测试 代码下载地址 地址:https://github.com/13thm/study_springcloud/tree/main/days6_Ribbon 简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端…

高级分布式系统-第15讲 分布式机器学习--神经网络理论

高级分布式系统汇总&#xff1a;高级分布式系统目录汇总-CSDN博客 神经网络理论 模糊控制在处理数值数据、自学习能力等方面还远没有达到人脑的境界。人工神经网络从另一个角度出发&#xff0c;即从人脑的生理学和心理学着手&#xff0c;通过人工模拟人脑的工作机理来实现机器…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 理论题

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…

学习Spring的第五天(Bean的依赖注入)

Bean的依赖注入有两种方式: 一 . 常规Bean的依赖注入 很简单,不过多赘述了,注意ref: 是构造函数或set方法的参数,一般为对象, value: 是构造函数或set方法的参数,一般为值. 看下图 1.1 下面来演示一下集合数据类型的关于Bean的依赖注入 1.1.1这是List的注入(演示泛型为Strin…

[NSSRound#16 Basic]RCE但是没有完全RCE

题目代码&#xff1a; <?php error_reporting(0); highlight_file(__file__); include(level2.php); if (isset($_GET[md5_1]) && isset($_GET[md5_2])) {if ((string)$_GET[md5_1] ! (string)$_GET[md5_2] && md5($_GET[md5_1]) md5($_GET[md5_2])) {i…

[python]裁剪文件夹中所有pdf文档并按名称保存到指定的文件夹

最近在写论文的实验部分&#xff0c;由于latex需要pdf格式的文档&#xff0c;审稿专家需要对pdf图片进行裁剪放大&#xff0c;以保证图片质量。 原图&#xff1a; 裁剪后的图像&#xff1a; 代码粘贴如下。将input_folder和output_folder替换即可。(x1, y1)&#xff0c; (x2…

小封装高稳定性振荡器 Sg2520egn / sg2520vgn, sg2520ehn / sg2520vhn

描述 随着物联网和ADAS等5G应用的实施&#xff0c;数据流量不断增长&#xff0c;网络基础设施变得比以往任何时候都更加重要。IT供应商一直在快速建设数据中心&#xff0c;并且对安装在数据中心内部/内部的光模块有很大的需求。此应用需要具有“小”&#xff0c;“低抖动”和“…

Flutter中使用minio_new库

前言 在移动开发中&#xff0c;我们常常会遇到需要在App中处理文件上传和下载的需求。Minio是一个开源的对象存储服务&#xff0c;它兼容Amazon S3云存储服务接口&#xff0c;可以用于存储大规模非结构化的数据。 开始之前 在pubspec.yaml文件中添加minio_new库的依赖&#xf…

CSV文件中json列的处理2

如上所示&#xff0c;csv文件中包含以中括号{}包含的json字段&#xff0c;可用如下方法提取&#xff1a; import pandas as pd from datetime import date todaystr(date.today()) import jsonfilepath/Users/kangyongqing/Documents/kangyq/202401/调课功能使用统计/ file104…

kotlin Kmp多平台模板生成

地址: Kotlin Multiplatform Wizard | JetBrains 可生成kotlin多个平台模板 https://terrakok.github.io/Compose-Multiplatform-Wizard/

分享 GitHub 上的敏感词汇工具类:sensitive-word

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

x-www-form-urlencoded接收方式代码示例

数据回推方式是 “x-www-form-urlencoded”&#xff0c;可以选择使用 GET 或 POST 方法来接收数据回推。 使用 GET 方法接收数据回推时&#xff0c;您可以将数据作为查询参数附加在请求的 URL 中。例如&#xff1a; http://example.com/callback?param1value1&param2val…

Vue学习笔记9--vuex(专门在Vue中实现集中式状态(数据)管理的一个Vue插件)

一、vuex是什么&#xff1f; 概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于…

统计学-R语言-6.1

文章目录 前言参数估计的原理总体、样本和统计量点估计区间估计评价估计量的标准有效性 总体均值的区间估计一个总体均值的估计&#xff08;大样本&#xff09;一个总体均值的估计&#xff08;小样本估计&#xff09; 练习 前言 本篇文章将开始介绍参数估计的相关知识。 参数估…