WPF快速开发(2):图标库知识点

这篇具有很好参考价值的文章主要介绍了WPF快速开发(2):图标库知识点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

图标资源下载 iconfont

知识点

windows资源

  • Window.Resources:资源位置声明
  • X:Key:资源Id,用于前端的xaml
  • X:Name:控件Id,用于后端的程序标记

Style:样式

简单样例

<Window.Resources>
        <!--x:Key:资源Id,TargetType:目标控件类型-->
    <Style x:Key="DefaultText" TargetType="TextBlock">
        <!--Setter 设置属性-->
        <Setter Property="FontSize"
                Value="50" />
    </Style>
</Window.Resources>

Setter:属性

用于设置控件属性

  • 可以直接写,也可以在Style.Setters里面写
<Style x:Key="DefaultText" TargetType="TextBlock">
  <!--Setter 设置属性-->
    <Setter Property="FontSize"
            Value="50" />
</Style>
<Style x:Key="DefaultText" TargetType="TextBlock">
    <!--Setter 设置属性-->
    <Style.Setters>
        <Setter Property="FontSize"
                Value="50" />
    </Style.Setters>
</Style>

使用属性使用Style=“{StaticResource 样式名}”

<TextBlock Text="文字" Style="{StaticResource DefaultText}" />
继承关系
  • 一个控件只能有一个Style
  • 使用 BasedOn=“{StaticResource 样式}”
  • 继承为覆盖关系。重复设置的属性以最后的为主
  • 行内样式>Style样式>Style继承样式

Trigger:触发器

但满足一个条件时动态触发,对属性进行修改

<!--x:Key:资源Id,TargetType:目标控件类型-->
<Style x:Key="DefaultText" TargetType="TextBlock">
    <!--Setter 设置属性-->
    <Style.Setters>
        <Setter Property="FontSize" Value="60" />
        <Setter Property="Foreground" Value="Green" />
    </Style.Setters>
    <!--触发器设置-->
    <Style.Triggers>
        <!--IsMouseOver 即 鼠标悬停时触发-->
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="FontSize" Value="100"/>
            <Setter Property="Foreground" Value="Red"/>
            <Setter Property="FontWeight" Value="Bold"/>
        </Trigger>
    </Style.Triggers>
</Style>
Property是触发属性,Value是值。即Property=value的时候触发
<Trigger Property="IsMouseOver" Value="True">

常用的触发属性

  • IsMouseOver:鼠标悬停

WPF层级划分

WPF快速开发(2):图标库知识点,WPF零基础快速开发,wpf

数据绑定

WPF快速开发(2):图标库知识点,WPF零基础快速开发,wpf

声明数据上下文

  • 命名规范。默认为xxxViewModel
  • 声明ViewModel类。所有绑定属性为public
  • 在View里面实例化

事例

namespace WpfApp2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private MainWindowViewModel ViewModel { get; set; }
        public MainWindow()
        {

            ViewModel = new MainWindowViewModel();
            this.DataContext = ViewModel;

            InitializeComponent();
        }
    }


    public class MainWindowViewModel
    {
        public string Title { get; set; }

        public Person Person { get; set; }

        public List<Person> Persons { get; set; }
        public MainWindowViewModel()
        {
            Title = "我是标题";
            Person = new Person()
            {
                Name = "小刘",
                Age = 26
            };

            Persons = new List<Person> {
                new Person()
                {
                    Name = "小明",
                    Age = 26
                },
                new Person()
                {
                    Name = "小红",
                    Age = 26
                },
                new Person()
                {
                    Name = "小兰",
                    Age = 26
                },
            };
        }
    }

    public class Person
    {
        public string Name { get; set; }

        public int Age { get; set; }
    }
}

绑定

绑定使用{Binding value}的形式

<!--字符串绑定,Title是DataContext的属性-->
<TextBlock Text="{Binding Title}" FontSize="50" />

<!--类绑定-->
<UniformGrid Columns="2"
        DataContext="{Binding Person}">
    
    <!--多层板Bind调用-->
    <TextBlock Text="{Binding Name}"
            FontSize="50" />
    <TextBlock Text="{Binding Age}"
            FontSize="50" />

</UniformGrid>



数据模板

用于绑定集合类型的数据文章来源地址https://www.toymoban.com/news/detail-606845.html

<!--数据模板,ItemsSorece绑定集合数据源-->
            <ItemsControl ItemsSource="{Binding Persons}">
                <!--排版布局--> 
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                
                <!--内容-->
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <!--UniformGrid-->
                        <UniformGrid Columns="2">

                            <!--多层板Bind调用-->
                            <TextBlock Text="{Binding Name}"
                                    FontSize="50" />
                            <TextBlock Text="{Binding Age}"
                                    FontSize="50" />

                        </UniformGrid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>

到了这里,关于WPF快速开发(2):图标库知识点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML基础知识点

    1、HTML基础 1.1、什么是网页?        网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一页,是超文本标记语言格式。它通常是由图片、文字、链接、声音、视频等元素组成。通过网页浏览器访问。 1.2、什么是HTML?   

    2024年02月07日
    浏览(48)
  • 集合基础知识点

    当 Java 程序中需要存放数据的时候,通常会定义变量来实现数据的存储,但是,当需要存储大量数据的时候该怎么办呢?这时首先想到的是数组,但是!数组只能存放同一类型的数据,而且其长度是固定的,那怎么办了?集合便应运而生了。 Java 集合类存放在 java.util 包中,

    2024年02月03日
    浏览(61)
  • Kubernetes基础知识点

    k8s可以看做是一个集群操作系统,能够对容器进行调度和编排。 Kubernetes中的基本对象 pod 是k8s中的最小单位,一个pod封装一个或者多个容器,存储资源。 deployment 是对pod的服务化封装,可以包含一个或多个pod statefulset 为每一个pod维护一个固定化id job 用来控制批处理型人物的

    2024年02月15日
    浏览(49)
  • Java 基础知识点

    Object 类相关方法   getClass 获取当前运行时对象的 Class 对象。 hashCode 返回对象的 hash 码。 clone 拷贝当前对象, 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝,对引用类型拷贝引用;深拷贝对基本类型进行值拷贝,对引用类型对象不但拷贝对象的引用还拷贝对象的相

    2024年02月13日
    浏览(64)
  • FPGA基础知识点

    基础知识 逻辑值 逻辑0:表示低电平,也就是对应电路GND 逻辑1:表示高电平,也就是对应电路VCC 逻辑X:表示未知,有可能是高电平也有可能是低电平 逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态 数字进制格式 Verilog数字进制格式包括 二进制(b) , 八进制(

    2024年02月03日
    浏览(53)
  • 硬件基础知识点

    D:十进制 B:二进制 H:十六进制 二进制→十六进制 整数部分从右往左,小数部分从左往右。 四个二进制数看作一个十六进制数,不足的补零。 十六进制→二进制同理。 十进制→二进制 方法一:短除法 除二倒取整,乘二正取余 方法二:拆分法(二进制减法) 十进制数转

    2024年02月06日
    浏览(52)
  • CSS基础知识点

    目录 ​编辑一、基本语法规范 二、CSS 选择器 1、简单选择器  (1)标签选择器 (2)类选择器 (3)ID 选择器 2、复合选择器 (1)后代选择器 (2)子选择器 (3)并集选择器 三、CSS常用属性值 1、设置字体家族 2、设置字体大小 3、设置字体的粗细 4、文字倾斜设置 5、文字

    2024年02月11日
    浏览(61)
  • OSPF基础知识点2

    目录 OSPF的三张表: 邻居和邻接关系: OSPF邻居关系的建立过程: 邻接关系建立的详细过程: 指邻居: OSPF支持的网络类型:  OSPF路由器类型: OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表。 对于OSPF的邻居表,需要了解: 1.OSPF在传递链路状态信息之前,需先建立

    2024年02月09日
    浏览(41)
  • Pytorch基础知识点复习

    本篇博客是本人对pytorch使用的查漏补缺,参考资料来自 深入浅出PyTorch,本文主要以提问的方式对知识点进行回顾,小伙伴们不记得的知识点可以查一下前面的教程哦。   现在并行计算的策略是 不同的数据分布到不同的设备中,执行相同的任务(Data parallelism) 。   它的逻

    2024年01月20日
    浏览(42)
  • 多线程基础知识点梳理

    进程(process):进程是计算机中的一个任务,比如打开浏览器、IntelliJ IDEA。 线程(thread):线程是进程内部的子任务。比如IDEA在敲代码的同时还能自动保存、自动导包,都是子线程做的。 进程和线程的关系就是一个进程包含一个或多个线程。 线程是操作系统调度的最小任

    2024年02月04日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包