自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天之梅子的博客

编程类教程

  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

转载 6.4-表单类控件难点:RadioButton、ProgressBar

6.4-表单类控件难点:RadioButton、ProgressBar一、RadioButton,单选框分组和选定值<!--RadioButton的使用案例--><ContentPage ...... xmlns:vm="clr-namespace:MauiApp15.ViewModels"> <!--实例化ViewModel,并设置为BindingContext--> <ContentPage.BindingContext&g

2023-05-29 00:40:40 148

转载 6.5-控件辅助功能①:动画Animation

缓动参数实际上是一个回调函数。我们将变化过程分解为从0到1的连续时序点,通过控制返回值来控制缓动效果。比如有一个向右平移100像素的动画,在0.01时序点时,应该平移1像素,如果返回值为0.02,会变成平移2像素,动画会表现为加束。自定义缓动有三种方式,语法上只是三种回调函数的表达区别,主要还是返回值的算法比较复杂,了解一下吧。/* ①创建动画:最少需要callback、start、end三个参数。* callback:回调函数定义目标对象属性,其中回调参数v指动画值* start:属性开始值。

2023-05-29 00:39:36 141

转载 6.1:控件总览

【代码】6.1:控件总览。

2023-05-28 01:48:42 542

转载 6.3-集合内容类控件难点:CollectionView

总体分为两步:一、设置分组数据源;二、在XAML中显示分组;三、设置页眉、页脚、空组显示等,可详见文档。

2023-05-28 01:48:33 234

转载 6.2-布局类控件难点:FlexLayout、BindableLayout、StateContainer

/直接New一个Employee集合 //ImageSource为Resources/Images目录下的图像 public partial class MainPageViewModel : ObservableObject {

2023-05-28 01:48:10 136

转载 5.5-导航路由Navigation

MAUI的Shell导航框架,也是以路由方式进行导航,并提供了两套导航方式,一是如前面章节所述的视觉层次结构,会自动建立导航路由,可以进行不同层次页面的导航切换;二是为页面手动注册路由,并执行代码导航。

2023-05-28 01:47:31 340

转载 5.6-搜索栏SearchHandler

/数据源,本例硬编码写死 public List < Monkey > Monkeys {get;set;//根据UI控件查询关键词筛选数据源 //参数oldValue为旧的查询关键词,newValue为新的查询关键词 protected override void OnQueryChanged(string oldValue , string newValue) {} else {} } //根据UI控件选择项进行导航,使用查询参数传递路由参数。

2023-05-28 01:46:36 128

转载 5.4-内容页ShellContent

ShellContent是Shell视觉层次结构中,最终承载内容页的构件,Shell > FlyoutItem|TabBar > Tab > ShellContent > View。

2023-05-28 01:45:43 200

转载 5.3-底部Tab栏导航TabBar/Tab/ShellContent

如果只需要底部Tab栏导航,则应使用TabBar。

2023-05-28 01:27:20 172

转载 5.2-浮出控件导航Flyout-FlyoutItem/MenuItem/Header/Footer

-定义多个FlyoutItem--> < Shell ...... > <!--Title-项目标题,Icon-项目图标--> <!

2023-05-28 01:14:36 237

转载 5.1-Shell导航视觉层次结构

1、项目从MauiProgram.cs启动,实例化App根页面2、在App.xaml文件中注册应用级别的资源字典;在App.xaml.cs后台代码中,创建AppShell对象,并赋值给MainPage属性。需要全局实例化的对象,也可以放在App。3、在AppShell.xaml文件中,设置视觉层次菜单和导航;在AppShell.xmal.cs后台代码中,可以执行全局的路由守卫逻辑。

2023-05-28 01:12:53 274

转载 4.5-主题设置LightTheme&DarkTheme

-定义Style,TargetType为Label--> < Style x: Key = " PrimaryLabelStyle " TargetType = " Label " > <Setter Property= "TextColor" Value= "{DynamicResource PrimaryTextColor}" />

2023-05-28 01:12:16 302

转载 4.4-字体图像集成Font&Image

图像集成的主要功能是,在项目的单个位置指定的图像,可以根据不同平台要求,自动生成不同分辨率的图像,在应用图标、初始画面、导航图标等功能上会使用到。建议使用SVG矢量格式图像,如使用SVG图像,在生成不同平台要求的图像是,会自动转为png图片格式。如在应用中引用图片资源,应将SVG图像的后缀修改为png,如dotnet_bot.svg矢量图,使用时用dotnet_bot.png。

2023-05-27 01:45:12 187

转载 4.3-笔刷Brush

Brush用于定义控件的外轮廓、背景等属性的值,是为属性赋值的。如Shape类控件的Stroke或Fill属性、Border控件的Stroke属性、Shadow的Brush属性、VisualElement派生类控件的Background属性等,同时在MAUI的Microsoft.Maui.Graphics画布中也有用到。MAUI为我们提供了三种类型的笔刷:(1)纯色笔刷:SolidColorBrush;(2)线性渐变笔刷:LinearGradientBrush;

2023-05-27 01:33:46 140

转载 4.2-样式外观:触发器Trigger

MAUI的触发器,提供了在运行时动态更改控件样式的方法。在Blazor或Vue中,可以通过三元表达式或绑定class来轻松实现,而MAUI则相对麻烦些,需要通过触发器来实现。触发器,其实就是控件的一个属性,只要是可视化控件,都带有一个Triggers集合属性,在这个集合属性中,可以设置多个Trigger。Trigger包括两个组成部分,一是触发条件,二是改变目标(样式类属性及其值)。

2023-05-27 01:26:19 273

转载 4.1-样式外观:控件状态样式VisualState

ContentPage ...... > < VerticalStackLayout Padding = " 10 " > < Entry x: Name = " entry1 " Placeholder = " 请输入 " > < VisualStateManager.VisualStateGroups > < VisualStateGroup x: Name = " CommonStates " >

2023-05-27 01:14:42 197

转载 3.5-深入理解XAML:行为Behavior

/在Behaviors文件夹下创建立NumberValidateBehavior行为类 public class NumberValidateBehavior {

2023-05-27 01:06:19 226

转载 3.4-深入理解XAML:数据模板DataTemplate

数据模板主要作用是定义集合类控件的数据显示外观,和前面几个章节自定义控件的关系不大。数据模板本质上是定义集合的每一个迭代对象的UI,和Vue的v-for或Blazor的foreach类似。数据模板可以直接在控件内部定义(内联数据模板),也可以定义在控件级、页面级或应用级的资源字典中。二、资源字典 数据模板的定义和使用三、控件模板也可以作为数据模板使用四、使用DataTemplateSelector(数据模板选择器),根据条件更改Item行样式。类似于在Vue或Blazor的循环中使用的if,但X

2023-05-27 00:56:21 264

转载 3.3-深入理解XAML:控件模板ControlTemplate

1、添加>新建项>选择“.NET MAUI”>选择ContentView,自动创建一个XAML文件及其后台代码,如CardView.xaml和CardView.xaml.cs2、在后台代码CardView.xaml.cs中,定义可绑定属性//部分类,派生自ContentView public partial class CardView : ContentView {

2023-05-27 00:50:25 302

转载 3.2-深入理解XAML:附加属性AttachedProperty

/和可绑定属性不同,这里调用的是CreateAttached方法 //在HashTable上建立一个Hashcode和BindableProperty对象的键值对 public static readonly BindableProperty HasShadowProperty = BindableProperty . CreateAttached("HasShadow" , typeof(bool) , typeof(Shadow) , false);

2023-05-27 00:43:50 103

转载 3.1-深入理解XAML:可绑定属性BindableProperty

/MAUI内置的控件,均是可绑定对象,属性均是可绑定属性。View是MAUI比较顶层的控件,Expander派生自View,继承了可绑定对象的特性及功能。

2023-05-27 00:39:07 253 1

转载 2.5-数据绑定和MVVM:MVVM的属性验证

Toolkit.Mvvm框架中的ObservableValidator类,提供了属性验证功能,可以使用我们熟悉的验证特性对属性的值进行验证,并将错误属性提取和反馈给UI层。以下案例实现对UI层的姓名和年龄两个输入框,进行表单提交验证。

2023-05-27 00:25:41 503

转载 2.4-数据绑定和MVVM:MVVM的消息机制

当两个对象之间需要建立松耦合关系时,特别适合使用消息机制。如ViewModel需要控制View进行某些操作时,如弹出对话框、播放动画,由于ViewModel对View是无感的,我们不能在ViewModel中去操作View,否则会造成ViewModel对View的依赖。另外,ViewModel层之间、以及View页面之间,也可能需要通过消息传递来完成一些交互。CommunityToolkit.Mvvm提供了比较完善的消息机制,以下内容主要介绍它的使用。

2023-05-26 19:42:00 547

转载 2.3-数据绑定和MVVM:MVVM开发模式

在View中,通过设置BindingContext为ViewModel对象,即可进行绑定。

2023-05-26 19:28:48 453 2

转载 2.2-数据绑定和MVVM:数据绑定转换器Converter

建议将自定义的转换器,统一放到Converters文件夹下//Convert方法中的value参数,为绑定源数据,此例中为int类型 //如果value为0,则返回false,否则返回true public object Convert(object value , Type targetType , object parameter , CultureInfo culture) {= 0;

2023-05-26 19:13:27 277 1

转载 2.1-数据绑定和MVVM:数据绑定Binding

1、数据绑定,链接两个对象的属性,其中一个对象作为绑定源,另一个对象作为绑定目标。两个链接的属性之间,可以实现双向、单向或单次等丰富的数据响应,一方数据发生变化,另一方做出同步响应。绑定目标几乎总是页面元素,而绑定源可能是同一页面元素,也可能是后台代码文件中某一对象。2、数据绑定的另一个显著特征是,绑定源对绑定目标是无感的,它不需要知道哪些目标绑定了它。

2023-05-26 07:34:07 722 2

转载 1.7-XAML语法基础:Markup语法及CommunityTookit简介

XAML可以使用等效的C#后台代码,即可以用C#写UI。但是,C#代码还稍显繁琐,所以在C#代码基础上,由CommutityToolkit提供了Markup扩展包,可以使用更加流畅的C#语法来写UI。

2023-05-26 07:22:15 278 1

转载 1.6-XAML语法基础:UI平台差异OnPlatform&OnIdiom

-简洁用法--> < BoxView HorizontalOptions = " Center " Color = " {OnIdiom Default=Red,Phone=Blue,Desktop=Pink} " WidthRequest = " {OnIdiom 250,Phone=200,Desktop=300} " />

2023-05-26 07:14:09 104 1

转载 1.5-XAML语法基础:资源字典ResourceDictionary

每个派生自VisualElement或Application的对象,都有一个Resources属性,属性值为Dictionary类型的集合对象,这些集合对象可作为资源,提供给元素及其在控件树中的子元素使用。当元素引用资源时,根据键名延着控件树往上匹配。如果控件树中,有多个键名匹配的资源,则使用最先匹配到的资源;如直到根元素Application(App.xaml),都没有找到,则出现XamlParseException异常。

2023-05-26 07:09:51 388 1

转载 1.4-XAML语法基础:x命名空间xmlns:x

x命名空间,又叫XAML命名空间,作用于XAML的编译过程。我们知道,XAML代码,最终通过XAML编译器,编译为中间代码IL,并与后台C#代码的编译结果合并。而在编译的过程中,经常需要告诉编译器一些重要信息,比如应该与哪个C#类的编译结果合并、XAML声明的元素是public还是private、元素的变量名是什么…这些可以和XAML编译器沟通的工具,都在x命名空间中。

2023-05-26 07:02:57 611 1

转载 1.3-XAML语法基础:标记扩展原理

通过ServiceProvider获得XAML文件的对象后,我们就可以执行更加复杂的逻辑计算,以返回我们需要的值。那么标记扩展的本质,也是在实例化一个对象,只是XAML编译器,会调用标记扩展对象的ProvideValue方法,并将返回值赋值给使用了标记扩展的 属性。注意,IMarkupExtension继承自IMarkupExtension,如果定义的标记扩展类,需要实现IMarkupExtension泛型接口,则返回值为object和返回值为泛型T的两个ProvideValue方法,均要实现。

2023-05-26 06:39:26 151 1

转载 1.2-XAML语法基础:标记扩展{}

MAUI基础教程

2023-05-26 00:06:01 337

转载 1.1-XAML语法基础:语法入门

Maui基础教程

2023-05-25 23:41:23 902

OpenXMLExample.rar

openxml Word,Excel通用操作类和一些通用扩展,扩展包括获取单元格的值,获取Worksheet,获了共享字符的表格对象 , 获取第一个SheetData, 修改单元格的内容 等

2020-02-03

功能区图标提取器.xlsm

获取 微软 Excel 功能区图标对应名称和图标,用于编写 Excel插件时要用 Excel 内置图标的图标ID 获取工具

2020-02-03

Word(微软官方VBA和对象参考)

Word(微软官方VBA和对象参考),写word宏,包括对象,方法,属性,事件等

2016-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除