第27章 WPF和XAML

2024-04-11 20:08
文章标签 27 wpf xaml

本文主要是介绍第27章 WPF和XAML,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

27.3 WPF程序集  850


27.4 创建不使用XAML的WPF应用程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;namespace WpfAppAllCode
{class Program:Application{//STAThread 确保应用程序所用的所有遗留的COM对象都是线程安全的。否则,将会引起运行时的异常。[STAThread]static void Main(string[] args){Program app = new Program();app.Startup+=AppStartUp;app.Exit+=AppExit;app.Run();}static void AppExit(object sender, ExitEventArgs e){//应用程序范围 属性集合if ((bool)Application.Current.Properties["GodMode"]){MessageBox.Show("Cheater");}MessageBox.Show("APP has exited!");}static void AppStartUp(object sender, StartupEventArgs e){//设置应用程序GodMode属性为 falseApplication.Current.Properties["GodMode"] = false;foreach (string arg in e.Args)//e.Args 命令提示符或桌面传入的值{if (arg.ToLower() == "/godmode"){Application.Current.Properties["GodMode"] = true;break;}}MainWindow wnd = new MainWindow("WPF App",400,500);wnd.Show();}}class MainWindow : Window{private System.Windows.Controls.Button btnExitApp = new System.Windows.Controls.Button();//new 按钮public MainWindow(string windowTitle, int height, int width){//处理Window对象关闭this.Closing+=new System.ComponentModel.CancelEventHandler(MainWindow_Closing);this.Closed+=new EventHandler(MainWindow_Closed);//拦截鼠标事件this.MouseMove+=new System.Windows.Input.MouseEventHandler(MainWindow_MouseMove);//拦截键盘事件this.KeyDown+=new System.Windows.Input.KeyEventHandler(MainWindow_KeyDown);//创建用户界面btnExitApp.Content = "Exit Application";btnExitApp.Height = 25;btnExitApp.Width = 100;btnExitApp.Click+=new RoutedEventHandler(btnExitApp_Click);this.Content = btnExitApp;this.Title = windowTitle;this.Width = width;this.Height = height;this.WindowStartupLocation = WindowStartupLocation.CenterScreen;}private void MainWindow_MouseMove(object sender, System.Windows.Input.MouseEventArgs e){this.Title = e.GetPosition(this).ToString();}private void MainWindow_KeyDown(object sender, System.Windows.Input.KeyEventArgs e){this.btnExitApp.Content = e.Key.ToString();}private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e){MessageBoxResult result= MessageBox.Show("你想关闭窗口吗?", "WCF App", MessageBoxButton.YesNo, MessageBoxImage.Warning);if (result == MessageBoxResult.No){e.Cancel = true;}}private void MainWindow_Closed(object sender,EventArgs e){MessageBox.Show("See Ya");}private void btnExitApp_Click(object sender,RoutedEventArgs e){this.Close();}}
}



27.5 仅使用XAML构建WPF应用程序

用XAML定义Window

<Window x:Class="WpfApplication1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"><Grid><Button x:Name="btnExitApp" Width="133" Height="24" Content="Close Window" Click="btnExitApp_Click"/></Grid><!--编写事件处理方法和该类的其他方法 c#代码--><x:Code><![CDATA[private void btnExitApp_Click(object sender,RoutedEventArgs e){this.Close();}]]></x:Code>
</Window>

用XAML定义Application对象

<!--定义应用程序对象--><Application x:Class="WpfApplication1.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"StartupUri="MainWindow.xaml" Exit="AppExit"><!--StartupUri 启动时,显示那个xaml--><x:Code><![CDATA[private void AppExit(object sender,ExitEventArgs e){MessageBox.Show("App has Exit!");}]]></x:Code><Application.Resources></Application.Resources>
</Application>



这篇关于第27章 WPF和XAML的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895065

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

树莓派5_opencv笔记27:Opencv录制视频(无声音)

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)  本人所用树莓派5 装载的系统与版本如下:  版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录... 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 阶段一:录制一段

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

27. Remove Elements

题目: 解答: 类似题26,注意下删除后的元素的移动方式即可 代码: class Solution {public:int removeElement(vector<int>& nums, int val) {if(nums.empty()) return 0;int len = nums.size();int lenafter = 0, head = 0;for(int i

【VB6|第27期】如何在VB6中使用Shell函数实现同步执行

日期:2024年9月1日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.4083;0.98365 = 0.0006 文

C# WPF燃气报警器记录读取串口工具

C# WPF燃气报警器记录读取串口工具 概要串口帧数据布局文件代码文件运行效果源码下载 概要 符合国标文件《GB+15322.2-2019.pdf》串口通信协议定义;可读取燃气报警器家用版设备历史记录信息等信息; 串口帧数据 串口通信如何确定一帧数据接收完成是个麻烦事,本文采用最后一次数据接收完成后再过多少毫秒认为一帧数据接收完成,开始解析出来。每次接收到数据更新一次re

WPF-快速构建统计表、图表并认识相关框架

一、使用ScottPlot.Wpf 官网地址:https://scottplot.net/quickstart/wpf/ 1、添加NuGet包:ScottPlot.Wpf 2、XAML映射命名空间:  xmlns:ScottPlot="clr-namespace:ScottPlot.WPF;assembly=ScottPlot.WPF" 3、简单示例: <ScottPlot:WpfP

C# wpf 实现游戏启动器界面制作的坑

用C# winform制作界面的时候发现背景图是带透明通道的会实现不了,于是用了个单独的类来实现底层背景图带透明 窗口原图: 。。。可是后面发现在鼠标悬浮Windows任务栏中此窗口预览图的时候只会渲染出控件了,没有了背景图。。。 网上找了很久没有找到好的解决办法,于是弃用了winform改用了wpf做游戏启动器的界面。  wpf的界面布局文件类似xml文档,实现背景透明的话不复杂

日记 01/27/2016.

有机会再看看这个: https://www.zhihu.com/question/27578379 想拿高package,多去拿几个offer再来谈,特别是hot startup的package,往往拿来要挟大公司的HR很好用。 最近在学习Angular JS,自己一定要坚持下来。然后把前端的知识补上。 打算Aug的时候,然后把Princeton的算法课上了,重新充电,然后把

WPF 点在控件内 判断

文章来源于本人的cnblog克隆https://www.cnblogs.com/ZoeWong/p/18396165 Winform方法 Winform里点在控件内判断方法很简单,获取的Rectangle,然后用它Contains方法就行 WPF方法 WPF不行,但其实也差不多,方法如下: 前提:控件A是总体容器控件,控件B是其子控件,判断鼠标点是否在B内获取鼠标当前位置 Point