WPF UI交互专题 界面结构化处理 查看分析工具Snoopy 逻辑树与视觉树 平面图像 平面图形 几何图形 弧线 01

    1、开发学习环境
    2、XAML界面结构化处理
    3、逻辑树与视觉树
    4、基于XAML的标签扩展方式

5、基础控件应用分析
6、控件常用属性与事件总结
7、常用控件特别属性说明
8、平面图形控件与属性
9、平面几何图形
10、弧线的处理过程

WPF项目-XAML 项目表现形式

项目结构
XAML :eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言
XML:Extensible Markup Language
标记定义

命名空间
默认
映射:x/d/mc
x:Array  x:Key  x:Name   x:Null  x:Static  x:Share   x:Type
 

逻辑树与视觉树

查看分析工具:Snoopy 层级关系 逻辑开发 视觉呈现 后续:数据绑定/事件

标签扩展
自定义标签/对象
继承相关基类
命名空间引入


类型转换器
XAML字符串编辑
对象属性非字符类型转换
 

控件类型    主要控件
按钮控件    Button、RepeatButton、RadioButton
数据显示控件    TextBlock、Label、Image、ItemsControl、ListView、ListBox、DataGrid、DocumentViwer
输入控件    TextBox、RichTextBox、CheckBox、ComboBox、DatePicker、PasswordBox、Slider、ProgressBar
菜单导航控件    MenuItem、ContextMenu、ToolBar、TreeView、TabControl、Expander
信息提示控件    Popup、Window、PrintDialog、ToolTip
布局控件    Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、InkCanvas、Border
图形控件    Line、Rectangle、Ellipse、Polyline、Polygon、Path
其他控件    ScrollViwer、GroupBox、ViewBox

常用属性

尺寸、定位、颜色、信息显示

鼠标事件、键盘事件

---------------  需要 大量 实操--------

1、基础控件应用分析
2、控件常用属性与事件总结
3、常用控件特别属性说明
4、平面图形控件与属性
5、平面几何图形
6、弧线的处理过程

常用属性

尺寸(宽高)、定位(Margin,HorizontalAlignment、VerticalAlignment)、颜色(Background、Foreground)、信息显示(Text、Content、ListViewItem、ListBoxItem、DataGridTextColumn…..) 鼠标事件、键盘事件 特别属性

特别属性

RadioButton:GroupName
集合控件:AlternationCount
ComboBox:SelectedItem、SelectedValue、SelectedValuePath、DisplayMemberPath、SelectedIndex
DatePicker:SelectedDate、DisplayDateStart、DisplayDateEnd
PasswordBox:Password(普通属性)
Silder、ProgressBar:最小值、最大值、当前值
Popup:IsOpen、Placement、PlacementTarget、StaysOpen
Window:无边框:1、WindowStyle=“None” AllowsTransparency=“True“      2、WindowChrome
 

布局控件    Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、InkCanvas、Border
图形控件    Line、Rectangle、Ellipse、Polyline、Polygon、Path

WPF 平面图像

 图形的必要性

   特殊视觉呈现

   上位机组件封装

图形对象

Rectangle、Ellipse、Line、Polyline、Polygon、Path
属性:
Stroke:线条颜色
StrokeThickness:线条的厚度(线宽)
StrokeDashArray:虚线控制(数组)
StrokeDashCap:虚线段的两端样式(向外延伸三角、半圆、方形)
StrokeEndLineCap、StrokeStartLineCap:整体线条的结束、起始端样式
StrokeMiterLimit:交叉点锐角向外延伸距离
StrokeLineJoin:交叉点的锐角样式

path

几何图形对象

Rectangle、Ellipse、Line、GeometryGroup、CombinedGeometry、PathGeometry


ArcSegment  :
弧线结束坐标Point、
弧线所在椭圆的横纵半轴尺寸Size、
弧线所在椭圆的旋转角度RotationAngle、
弧两点间弧线的扫掠方向SweepDirection、
在两点的弧线是否取大弧(优势弧)IsLargeArc

<Line X1="10" Y1="10" X2="100" Y2="100" Stroke="Red" StrokeThickness="2" StrokeDashArray="3,1,2,5"StrokeDashCap="Triangle" StrokeEndLineCap="Round" StrokeStartLineCap="Round"Fill="Orange" HorizontalAlignment="Left" VerticalAlignment="Top"Panel.ZIndex="1"/>
<Rectangle Width="100" Height="50" Fill="Orange" Stroke="Red"RadiusX="10" RadiusY="10"/>
<Ellipse Width="100" Height="50"/>
多边形
<Polygon Points="20 40,30 80,100 20" Fill="Orange" Stroke="Red"StrokeMiterLimit="10" StrokeLineJoin="Round"/><Path Fill="Orange" Stroke="Green"><Path.Data><GeometryGroup><LineGeometry StartPoint="100 10" EndPoint="200 50"/><RectangleGeometry Rect="200,50,100,50" RadiusX="10" RadiusY="10"/><EllipseGeometry Center="200 50" RadiusX="100" RadiusY="50"/></GeometryGroup></Path.Data>
</Path><Path Stroke="Blue"><Path.Data><PathGeometry><PathFigure StartPoint="100 10"><LineSegment Point="200,50"/><LineSegment Point="240,10"/><ArcSegment Point="120,50" Size="100 50" RotationAngle="10" SweepDirection="Counterclockwise"IsLargeArc="True"/></PathFigure></PathGeometry></Path.Data>
</Path>

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

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

相关文章

threadX netX 创建/删除 IP实例,使能 ARP地址解析

创建IP实例 函数原型 UINT nx_ip_create( NX_IP *ip_ptr, CHAR *name, ULONG ip_address, ULONG network_mask,NX_PACKET_POOL *default_pool,VOID (*ip_network_driver)(NX_IP_DRIVER *), VOID *memory_ptr,ULONG memory_size,UINT priority);参数&#xff1a; ip_ptr&…

Sectigo或RapidSSL DV通配符SSL证书哪个性价比更高?

在当前的网络安全领域&#xff0c;选择一款合适的SSL证书对于保护网站和用户数据至关重要。Sectigo和RapidSSL作为市场上知名的SSL证书提供商&#xff0c;以其高性价比和快速的服务响应而受到市场的青睐。本文将对Sectigo和RapidSSL DV通配符证书进行深入对比&#xff0c;帮助用…

C#给SqlSugar封装一个单例类

.NET兼职社区 可以直接用&#xff0c;轻量方便&#xff0c;无需重复造轮子。 这里只对CRUD进行封装&#xff0c;我的应用比较简单。 using SqlSugar; using System.Collections.Generic;namespace MusicApp.Assist {internal class SqlSugarAssist{private static readonly ob…

Scrapy框架与其他Python爬虫库的对比分析

在当今互联网高速发展的时代&#xff0c;数据的价值也越来越凸显&#xff0c;因此爬虫技术也越来越受到关注和重视。python 爬虫库是爬虫开发中最常用的工具之一&#xff0c;而 scrapy 框架就是其中比较流行的一个。本文将会对 scrapy 框架和其他 python 爬虫库进行对比分析。 …

Firefox 编译指南2024 Windows10- 定制化您的Firefox(四)

1. 引言 定制化您的Firefox浏览器是一个充满乐趣且富有成就感的过程。在2024年&#xff0c;Mozilla进一步增强了Firefox的灵活性和可定制性&#xff0c;使得开发者和高级用户能够更深入地改造和优化浏览器以满足个人需求。从界面的微调到功能的增强&#xff0c;甚至是核心代码…

我在高职教STM32——GPIO入门之按键输入(2)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

【前端】Web操作文件的可能性——浅谈一下File System Api

Web操作文件的可能性——浅谈一下File System Api 随着Web技术的发展&#xff0c;现代Web应用程序越来越多地需要与用户的本地文件系统交互。文件系统API&#xff08;File System API&#xff09;为开发者提供了一组标准和接口&#xff0c;使得Web应用程序可以像本地应用程序一…

240628_昇思学习打卡-Day10-SSD目标检测

240628_昇思学习打卡-Day10-SSD目标检测 今天我们来看SSD&#xff08;Single Shot MultiBox Detector&#xff09;算法&#xff0c;SSD是发布于2016年的一种目标检测算法&#xff0c;使用的是one-stage目标检测网络&#xff0c;意思就是说它只需要一步&#xff0c;就能把目标检…

【C++题解】1466. 等差数

问题&#xff1a;1466. 等差数 类型&#xff1a;简单循环 题目描述&#xff1a; Peter 同学刚刚在学校学习了等差数列的概念。 等差数列&#xff0c;指的是一组数&#xff0c;这些数连续 2 个数的差值是相等的&#xff0c;比如&#xff1a;123&#xff0c;135&#xff0c;852…

SerDes介绍以及原语使用介绍(2)OSERDESE2原语仿真

文章目录 前言一、SDR模式1.1、设计代码1.2、testbench代码1.3、仿真分析 二、DDR模式下2.1、设计代码2.2、testbench代码2.3、仿真分析 三、OSERDES2级联3.1、设计代码3.2、testbench代码3.3、代码分析 前言 上文通过xilinx ug471手册对OSERDESE有了简单的了解&#xff0c;接…

Spring Batch批量处理数据

Spring Batch 是一个由 Pivotal Software&#xff08;原 SpringSource&#xff0c;现属于 VMware&#xff09;开发的批处理框架&#xff0c;它是 Spring 框架的一部分&#xff0c;主要用于创建高效、健壮的批量数据处理应用。Spring Batch 设计用于处理大量的记录&#xff0c;例…

PreparedStatement 与Statement 的区别,以及为什么推荐使用 PreparedStatement ?

在Java中&#xff0c;PreparedStatement和Statement都是用于执行SQL语句的重要接口&#xff0c;但它们在功能、安全性和性能上有着显著的差异。理解这些差异对于编写高效且安全的数据库应用程序至关重要。 Statement&#xff1a;基本的SQL执行者 首先&#xff0c;让我们从Sta…

[物联网专题] - 螺钉式接线端子的选择和辨识

工业设备上大量使用各式各样的端子来连接外部设备和电缆电线&#xff0c;其中用得最多的就是标准的螺钉式端子&#xff0c;其外形如下&#xff1a; 标准端子一般是2位&#xff08;2个接线端子&#xff09;&#xff0c;端子与端子之间可以级联&#xff0c;组成任意数量的位数。…

【前端】简易化看板

【前端】简易化看板 项目简介 看板分为三个模块&#xff0c;分别是待办&#xff0c;正在做&#xff0c;已做完三个部分。每个事件采取"卡片"式设计&#xff0c;支持任务间拖拽&#xff0c;删除等操作。 代码 import React, { useState } from react; import { Car…

【图论 树 深度优先搜索】2246. 相邻字符不同的最长路径

本文涉及知识点 图论 树 图论知识汇总 深度优先搜索汇总 LeetCode 2246. 相邻字符不同的最长路径 给你一棵 树&#xff08;即一个连通、无向、无环图&#xff09;&#xff0c;根节点是节点 0 &#xff0c;这棵树由编号从 0 到 n - 1 的 n 个节点组成。用下标从 0 开始、长度…

如何正视AI创造音乐

音乐作为一种艺术形式&#xff0c;一直被认为是人类情感和创造力的表达。然而&#xff0c;随着人工智能技术的快速发展&#xff0c;AI在音乐领域的应用也日益广泛。最近一个月&#xff0c;音乐大模型的轮番上线&#xff0c;将素人生产音乐的门槛降到了最低&#xff0c;引发了音…

【漏洞复现】SolarWinds——任意文件读取

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 SolarWinds其Serv-UFTP服务存在目录遍历导致任意文件读取漏洞&a…

数据访问层如何提取数据到其他层,其他类中

当然可以&#xff0c;以下是一些具体的例子&#xff0c;展示了如何将数据库访问逻辑封装在一个单独的类中&#xff0c;并在其他类中使用这个类来获取数据。 数据库访问类&#xff08;DatabaseAccess.java&#xff09;&#xff1a; java复制代码 import java.sql.*; import ja…

自然语言处理(NLP)—— 深度学习

1. 词嵌入&#xff08;Embeddings&#xff09; 1.1 词嵌入的基本概念 词嵌入&#xff08;Embeddings&#xff09;是一种将词语映射到高维空间&#xff08;比如N300维&#xff09;的技术&#xff0c;使得词语之间的欧几里得距离与它们的语义距离相关联。这意味着在这个向量空间…

macOS 上或linux安装 Jenkins

在 macOS 上使用 Docker 安装 Jenkins 的步骤如下&#xff1a; 安装 Docker: 如果尚未安装 Docker&#xff0c;请先从 Docker 官网下载并安装 Docker Desktop for Mac。 打开终端: 打开 macOS 上的终端应用程序。 拉取 Jenkins 镜像: 使用以下命令从 Docker Hub 拉取 Jenkins…