WPF学习

news2024/9/23 20:25:54

一、了解WPF的框架结构

(第一小节随便看下就可以,简单练习就行)

1、新建WPF项目

 

xmlns:XML的命名空间 

 Margin外边距:左上右下

HorizontalAlignment:水平位置

VerticalAlignment:垂直位置

 2、Border的使用

效果:

3、LoginWindow窗口

在Wpf中不是所有的标签都有Name属性,但是一定有x:Name,x:Name为了保证所有标签的唯一性 

PasswordBox是密码框

winform中窗体的加载事件:Load,WPF中窗体的加载事件是Loaded

代码:

LoginWindow.xaml的代码

<Window x:Class="WpfApp1.LoginWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="LoginWindow" Height="450" Width="800" Loaded="Window_Loaded">
    <Border BorderBrush="Green" BorderThickness="3" CornerRadius="10">
        <!--BorderBrush:边框的颜色  BorderThickness:边框的厚度/粗细  CornerRadius:边框四个角的半径-->
        <Grid>
        <TextBlock HorizontalAlignment="Left" Margin="213,150,0,0" TextWrapping="Wrap" Text="账号" VerticalAlignment="Top"/>
        <TextBlock HorizontalAlignment="Left" Margin="213,200,0,0" TextWrapping="Wrap" Text="密码" VerticalAlignment="Top" RenderTransformOrigin="-0.067,-2.57"/>
        <TextBox Name="txtUserCount" HorizontalAlignment="Left" Height="23" Margin="306,149,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="208"/>
            <Button  Name="btnLogin" Content="登录" HorizontalAlignment="Left" Margin="230,268,0,0" VerticalAlignment="Top" Width="75" Click="BtnLogin_Click"/>
        <Button Name="btnClose" Content="关闭" HorizontalAlignment="Left" Margin="351,267,0,0" VerticalAlignment="Top" Width="75"/>
            <PasswordBox x:Name="txtUserPwd" HorizontalAlignment="Left" Margin="306,200,0,0" VerticalAlignment="Top" Width="208" Height="23"/>
            <DataGrid HorizontalAlignment="Left" Height="100" Margin="372,430,0,-115.6" VerticalAlignment="Top" Width="100"/>
            <!--在Wpf中不是所有的标签都有Name属性,但是一定有x:Name,x:Name为了保证所有标签的唯一性-->
        </Grid>
    </Border>
</Window>

 LoginWindow.xaml.cs的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace WpfApp1
{
    /// <summary>
    /// LoginWindow.xaml 的交互逻辑
    /// </summary>
    public partial class LoginWindow : Window
    {
        public LoginWindow()
        {
            InitializeComponent();
        }

        private void BtnLogin_Click(object sender, RoutedEventArgs e)
        {
            string userAccount = txtUserCount.Text;
            string userPwd = txtUserPwd.Password;
            //this.txtUserPwd.SecurePassword;//加密字符串,保存成内存地址
            MainWindow mainWindow = new MainWindow();
            mainWindow.Show();
            this.Close();
        }
        /// <summary>
        /// 窗体加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

        }
    }
}

效果图:

4、文本框旋转

选中文本框,鼠标放到文本框的四个角的任意一个边上,然后旋转即可

 默认的文本框有如下属性:

旋转后的文本框:

 5、关闭主窗体,其他窗体不关

MainWindow界面:

 MainWindow.xaml代码:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="311,163,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.5,0.5">
           <!--transform:使改变、使转换 render:提供 scale:天平 skew:歪曲 rotate:旋转 translate:翻译、转变、变为-->
            <TextBox.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="25.259"/>
                    <TranslateTransform/>
                </TransformGroup>
            </TextBox.RenderTransform>
        </TextBox>
        <Button Content="返回" HorizontalAlignment="Left" Margin="318,288,0,0" VerticalAlignment="Top" Width="116" Height="41" Click="Button_Click"/>
        <Button x:Name="btnClose" Content="关闭" HorizontalAlignment="Left" Margin="562,288,0,0" VerticalAlignment="Top" Width="137" Height="41" Click="BtnClose_Click"/>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="81,158,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.5,0.5">
            <TextBox.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="16.461"/>
                    <TranslateTransform/>
                </TransformGroup>
            </TextBox.RenderTransform>
        </TextBox>
    </Grid>
</Window>

 MainWindow.xaml.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        //返回按钮
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            LoginWindow loginWindow = new LoginWindow();
            loginWindow.Show();
            this.Close();
        }
        //关闭按钮
        private void BtnClose_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();//关闭应用程序,杀死进程
            
        }
    }
}

 

二、WPF常用基础控件结构和应用

三、StockPanel堆栈面板,WrapPanel流布局面板

四、DockPanel停靠面板,Canvas坐标面板

五、复杂的Grid表格容器面板

六、直接_冒泡_隧道路由事件、InkCanvas面板

七、ListView数据控件(带右键菜单)

八、Animation动画制作类,声音合成器(类)

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

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

相关文章

性能测试开始前的需求调研

之前的博客聊聊性能测试开始前的准备工作&#xff0c;聊了一些关于性能测试开始前要做的准备工作。这篇博客&#xff0c;来谈谈性能测试开始前的需求调研阶段&#xff0c;我们要做什么&#xff0c;关注那些Point。。。 一、基本信息 信息类型说明项目名称项目归属的业务线&am…

低代码应用开发平台,让数据管理更简单!

在数据管理越来越规范化的今天&#xff0c;低代码应用开发平台也获得了进步和发展的机会和空间。想要将企业内部的数据资源做好系统管理&#xff0c;从而为各个时期的经营决策提供强有力的证据和基础&#xff0c;低代码应用开发平台就是其中备受喜爱的工具。本文主要从它的特点…

重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来

在今天的 2023 阿里云合作伙伴大会上&#xff0c;阿里云智能云原生应用平台运营&生态业务负责人王荣刚宣布&#xff1a; “阿里云云原生合作伙伴计划”全新升级。他表示&#xff1a; 云原生致力于帮助企业客户最大限度的减轻运维工作&#xff0c;更好的实现敏捷创新&#x…

MQTT 协议

MQTT 简介 MQTT是一种基于客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范&#xff0c;易于实现。这些特点得它对很多场景来说都是很有的选择&#xff0c;特别是对于受限的环境如机器与机器的通信&#xff08;M2M&#xff09;以及物联网…

RAC集群节点2异常时节点1的database实例无法提供服务问题的分析

在客户的数据库RAC集群环境中&#xff0c;节点2发生了异常&#xff0c;最终通过重启解决。在节点2发生异常的10分钟左右时间内&#xff0c;由于RAC集群节点2异常&#xff0c;此时节点1的database实例无法提供服务问题&#xff0c;程序操作报超时&#xff1b; 对此现象&#xf…

【Linux】-关于Linux的指令(中)

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录 前言一、man指令二、cp指令三、mv指令四、cat指令五、more和less指令六、hea…

【力扣-141】 环形链表 + 【力扣-142】 环形链表 II

&#x1f58a;作者 : Djx_hmbb &#x1f4d8;专栏 : 数据结构 &#x1f606;今日分享 : 霍桑效应(霍索恩效应) : 是指那些意识到自己正在被别人观察的个人具有改变自己行为的倾向。 霍桑效应告诉我们&#xff1a;从旁人的角度&#xff0c;善意的谎言和夸奖真的可以造就一个人&a…

线程的生命周期以及sleep()方法和wait()方法

三种休眠状态&#xff1a;Blocked&#xff0c;Waiting&#xff0c;Timed_Waiting 注意两个Blocked态是不一样的&#xff0c;上面的Blocked只要睡眠时间到了马上进入运行态&#xff0c;下面处于Blocked的线程还需要抢到锁才能进入运行态 sleep()和wait()方法&#xff1a; sleep…

【翻译一下官方文档】创建uniCloud服务空间并关联新建的uniapp项目

我将用图文的形式&#xff0c;把市面上优质的课程加以自己的理解&#xff0c;详细的把&#xff1a;创建一个uniCloud的应用&#xff0c;其中的每一步记录出来&#xff0c;方便大家写项目中&#xff0c;做到哪一步不会了&#xff0c;可以轻松翻看文章进行查阅。&#xff08;此文…

论文笔记:An Interactive-Voting Based Map Matching Algorithm

2010 MDM 1 ST-matching的问题 论文笔记&#xff1a;Map-Matching for low-sampling-rate GPS trajectories&#xff08;ST-matching&#xff09;_UQI-LIUWJ的博客-CSDN博客 当轨迹很长&#xff0c;且车辆通过多线平行的道路时&#xff0c;ST-Matching的效果较差&#xff0c…

冯·诺依曼体系结构与初始操作系统

目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…

世界大学电子电气工程TOP10,国内大学哪家强?

EE究竟是什么专业 ? 在中国&#xff0c;工程系中跟电相关的专业&#xff0c;一般都切分得非常细。有电子工程、电气工程、通信工程、信息工程、自动化、测控仪器等。但在国外&#xff0c;一般把这些领域都归类到 Electrical Engineering 中&#xff0c;也就是我们常说的EE。 …

后向投影算法(续)-SAR成像算法系列(八)

系列文章目录 《后向投影算法&#xff08;BPA&#xff09;-SAR成像算法系列&#xff08;二&#xff09;》 文章目录 前言 一、成像场景设置 1.1 扫描模式 条带模式 聚束模式 1.2 几何构型 正侧视 斜视 1.3 成像坐标选择 固定场景直角坐标系 沿视线直角坐标系 数据获取面直角坐标…

深度学习GPU选购指南

【导读】最近&#xff0c;曾拿到斯坦福、UCL、CMU、NYU博士offer、目前在华盛顿大学读博的知名测评博主Tim Dettmers在自己的网站又上线了深度学习领域的GPU深度测评&#xff0c;到底谁才是性能和性价比之王&#xff1f; 众所周知&#xff0c;在处理深度学习和神经网络任务时&a…

马云的创业故事及他人生中的摆渡人-创建阿里巴巴(六)

著名的“18罗汉大会” 以及“马云成功背后的男人” 1999年大年初五&#xff0c;杭州湖畔花园小区&#xff0c;18个人坐满了一屋子&#xff0c; 这是阿里巴巴的第一次全员大会&#xff0c;马云激情澎湃地讲了2个小时&#xff0c;并且专门请了摄影师全程录像。 这就是传说中的…

边界点射箭问题

问题 题目 问题: 给定一个有目标位置和边界单元格为空的 n n 方格表&#xff0c;找出哪个位于边界单 元格的箭头会击中最多连续的目标而不经过目标之间的任何空单元格。箭头方向为&#xff1a; (A)←、(B) ↑、 © →、(D) ↓、(E) ↖、 (F) ↗、 (G) ↘ 和 (H) ↙。 将…

Nginx反向代理+Keepalived实现Nginx高可用

Keepalived概述&#xff1a; keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件&#xff0c;也就是我们平时说的第 3 层、第 4 层和第 5层交换。 Keepalived 的作用是检测 web 服务器的状态&#xff0c;如果有一台 web 服务器死机&#xff0c;或工作出现故障&#xff…

[极客大挑战 2019]Havefun、[ACTF2020 新生赛]Include、[SUCTF 2019]EasySQL

[极客大挑战 2019]Havefun 进入环境就如下图啥都没给我查看了一下源码 直接给出了flag???尝试了一下结果是一个假的flag&#xff0c;然后我们分析源代码很容易看出我们通过GET方式给cat传一个值&#xff0c;如果cat的值为dog就输出flag&#xff0c;这很简单了我们通过get方…

京东2023年Q1财报预测:短期增速承压,收入和净利润预测被下调

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;中信证券近期发布研报维持京东&#xff08;JD&#xff09;买入评级&#xff0c;中信证券在研报中预计京东2023年第一季度的营收将达到2,383亿元/同比减少-0.6%&#xff0c;Non-GAAP净利润50.6亿元/…

AI剧本拆解,教你利用AI快速拆解剧本

AI剧本拆解是一项将影视、戏剧等剧本进行分析和优化的技术&#xff0c;可以帮助制作团队更好地规划角色、情节、场景等元素&#xff0c;并提升作品的艺术水平和观赏体验。 1、为什么要拆解剧本&#xff1f; 剧本拆解是制片人和导演的第一项工作&#xff0c;把剧本中各项要素分…