WPF基础知识

WPF布局基础原则

复制代码
1.一个窗口中只能包含一个元素
2. 不应该显示设置元素尺寸
3. 不应使用坐标设置元素的位置
4.可以嵌套布局容器

WPF布局容器

  • StackPanel:水平或垂直排列元素,Orientation属性分别为:Horizontal/Vertical
  • WrapPanel:水平或垂直排列元素、针对剩余空间不足会进行换行或换列进行排列。
  • DockPanel:根据容器的边界、元素进行Dock.Top(Left、Right、Bottom)设置 默认情况最后一个元素会填充满 LastChildFill="False"
  • Grid:类似Table表格,可以灵活设置行列并且放置控件元素(最常用的)
  • UniformGrid:指定行和列的数量,均分有限的容器空间。
  • Canvas:使用固定的坐标设置元素的位置,不具备停靠等功能。

WPF样式:TargetType:样式所指定的类型

Foreground:字体颜色

FontSize:字体大小

FontFamily:字体

Background:背景颜色

margin边距

CornerRadius:圆角矩形

HorizontalAlignment:水平位置

VerticalAlignment:垂直位置
触发器的使用

1:使用场景:例如当鼠标碰到按钮时候字号为30,字体颜色为红色,当鼠标为碰到按钮时候字号为20 ,字体颜色为蓝色;

csharp 复制代码
  <Style x:Key="MM" TargetType="Button">
            <Setter Property="Width" Value="300"/>
            <Setter Property="Height" Value="48"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="Red"/>
                    <Setter Property="FontSize" Value="30"/>
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Foreground" Value="Blue"/>
                    <Setter Property="FontSize" Value="20"/>
                </Trigger>
            </Style.Triggers>
        </Style>

多条件触发器的使用

csharp 复制代码
<Style x:Key="MM" TargetType="Button">
            <Setter Property="Width" Value="300"/>
            <Setter Property="Height" Value="48"/>
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver" Value="True"/>
                        <Condition Property="IsFocused" Value="True"/>
                    </MultiTrigger.Conditions>
                    <MultiTrigger.Setters>
                        <Setter Property="Foreground" Value="Red"/>
                    </MultiTrigger.Setters>
                </MultiTrigger>
            </Style.Triggers>
        </Style>

事件触发器

自定义控件模板

Cell Template数据模板

引用样式的方法:

StaticResource:静态的

DynamicResource动态的

相关推荐
听麟3 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
听麟7 小时前
HarmonyOS 6.0+ APP AR文旅导览系统开发实战:空间定位与文物交互落地
人工智能·深度学习·华为·ar·wpf·harmonyos
聆风吟º21 小时前
CANN hccl 深度解析:异构计算集群通信库的跨节点通信与资源管控实现逻辑
人工智能·wpf·transformer·cann
无心水1 天前
分布式定时任务与SELECT FOR UPDATE:从致命陷阱到优雅解决方案(实战案例+架构演进)
服务器·人工智能·分布式·后端·spring·架构·wpf
LZL_SQ1 天前
HCCL测试框架中AllReduce边界条件测试设计深度剖析
wpf·cann
User_芊芊君子2 天前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
就是有点傻3 天前
WPF按钮走马灯效果
wpf
zuozewei3 天前
虚拟电厂聚合商平台安全技术体系深度解读
安全·wpf
极客智造3 天前
WPF 自定义控件:AutoGrid 实现灵活自动布局的网格控件
wpf
极客智造3 天前
WPF Grid 布局高效扩展:GridHelpers 附加属性工具类全解析
wpf