我们创建一个wpf应用程序,我们把里面的xaml文件全部删除,添加一个新类:

如下图:

然后我们cs文件中的代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Controls;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes; namespace 无xaml的WPF
{
//首先继承System.Windows.Application对象
class subMain : System.Windows.Application
{
//线程单元标记
[STAThread]
public static void Main()
{ System.Windows.Application app = new Application();
MyWindow mw = new MyWindow();
mw.Width = ;
mw.Height = ;
mw.BorderThickness = new Thickness(, , , );
app.Run(mw);
}
} public partial class MyWindow : Window//继承Window对象
{
//创建需要的元素
Canvas canv;
Ellipse e1;
Button b1;
Label lab1;
Rectangle r1;
Rectangle r2;
public MyWindow()
{
canv = new Canvas();
canv.Name = "C1";
this.Content = canv;
canv.Margin = new Thickness(, , , );
canv.Background = new SolidColorBrush(Colors.White); e1 = new Ellipse();
e1.Fill = new SolidColorBrush(Colors.YellowGreen);
e1.Stroke = new SolidColorBrush(Colors.Azure);
e1.Width = ;
e1.Height = ;
e1.Margin = new Thickness(, , , );
canv.Children.Add(e1); r1 = new Rectangle();
r1.Fill = new SolidColorBrush(Colors.Tomato);
r1.Opacity = 0.5;
r1.Stroke = new SolidColorBrush(Colors.Red);
r1.Width = ;
r1.Height = ; r1.SetValue(Canvas.LeftProperty, (double));
r1.SetValue(Canvas.TopProperty, (double));
canv.Children.Add(r1); b1 = new Button();
b1.Width = ;
b1.Height = ;
b1.Content = "修改圆形位置";
b1.SetValue(Canvas.LeftProperty, (double)r1.GetValue(Canvas.LeftProperty) + );
b1.SetValue(Canvas.TopProperty, (double)r1.GetValue(Canvas.TopProperty) + );
b1.Click += new RoutedEventHandler(b1_Click);
canv.Children.Add(b1); Label lab0 = new Label();
lab0.Margin = new Thickness(, , , );
lab0.Width = ;
lab0.Height = ;
lab0.FontSize = ;
lab0.Name = "lab0";
lab0.Content = "无XAML动态编程演示";
canv.Children.Add(lab0); lab1 = new Label();
lab1.Margin = new Thickness(, , , );
lab1.Width = ;
lab1.Height = ;
lab1.FontSize = ;
lab1.Name = "lab1";
lab1.Content = "Location:";
canv.Children.Add(lab1); r2 = new Rectangle(); r2.Width = ;
r2.Height = ;
r2.Fill = Brushes.YellowGreen;
r2.Stroke = Brushes.RoyalBlue;
r2.StrokeThickness = ;
canv.Children.Add(r2); e1.MouseMove += new System.Windows.Input.MouseEventHandler(el_MouseMove);
} void b1_Click(object sender, RoutedEventArgs e)
{
Point p = System.Windows.Input.Mouse.GetPosition(canv as System.Windows.IInputElement);
e1.Margin = new Thickness(p.X, p.Y, , ); } void el_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
Ellipse a = e.Source as Ellipse;
Point p = System.Windows.Input.Mouse.GetPosition(canv as System.Windows.IInputElement);
lab1.Content = "Location:" + p.ToString();
} }
}

效果展示:

无Xaml的WPF展示的更多相关文章

  1. 11、创建不使用XAML的WPF应用程序

    首先新建一个空的项目,然后添加一个类,引用一下程序集: PresentationCore.dll PresentationFramework.dll WindowsBase.dll namespace ...

  2. [XAML]类似WPF绑定的Binding的读取方法

    在WPF的XAML里,依赖属性可以使用基于BindingBase之类的MarkupExtensin 读取XAML时,会自动的把该BindingBase转换为BindingExpressionBase ...

  3. 使用XAML在WPF项目中承载ArcGIS Engine地图控件开发

    原文 http://blog.csdn.net/flexmapserver/article/details/5868882 用Windows Form进行ArcGIS Engine二次开发时常见的形式 ...

  4. 微软XAML Studio - WPF, Sliverlight, Xamarin, UWP等技术开发者的福音

    目录 编辑器功能 数据源功能 调试数据绑定 伟大的开始 我们来一起实践吧 最近又在继续倒腾WPF的项目,继续使用Caliburn.Micro和Xceed来堆代码.每次调试xaml上的binding,都 ...

  5. 没有xaml的WPF

    出于强迫症,我查了一下文档弄明白了WPF脱离xaml应该怎么搞.当然其实本质是为了MaxScript里使用做准备. using System; using System.Windows; using ...

  6. WPF,Silverlight与XAML读书笔记(3) - 标记扩展

    hystar的.Net世界 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔- 103  文章- 0  评论- 107  WPF,Silverlight与XAML读书笔记(3) - 标记扩展   说 ...

  7. 【WPF系列】基础学习-XAML

    引言 WPF框架中已经提到,WPF框架提供XAML基本服务.WPF中XAML的引入向开发者提供UI设计和代码分离的编程型.XAML是WPF中提出的一个具有重要意义的新技术,基本涉及WPF中所有UI开发 ...

  8. .Net Core WPF之XAML概述

    原文链接,机器翻译,有误处参看原文. XAML overview in WPF 2019/08/08 What is XAML XAML syntax in brief Case and white ...

  9. WPF入门:XAML

    XAML是WPF技术中专门用于设计UI的语言 XAML优点最大的优点是将UI与逻辑代码剥离 创建第一个WPF应用程序 VS默认生成的WPF项目解决方案 Properties:里面主要包含了程序用到的一 ...

随机推荐

  1. Windows版 mysql 5.7.16安装

    MySQL 5.7版本安装教程-踩坑总结 下载 MySQL下载地址选择下载64位(看自己电脑是32位还是64位) 点击下载之后,它会让你登录,没有Oracle账户,跟着它的步骤注册一个就好了. 安装 ...

  2. Yii2 验证码

    没有用默认的layout  验证码点击不会改变 下面是静态页面代码 <div class="col-sm-12 login"> <div class=" ...

  3. C#面向对象基础:virtual方法,abstract方法,区别

    virtual 关键字用于修饰方法.属性.索引器或事件声明,并使它们可以在派生类中被重写.默认情况下,类中的方法是非虚的,非虚的方法不能在子类中被覆盖(override),但是可以隐藏(new),但这 ...

  4. Win7 下安装RabbitMQ

    RabbitMQ依赖erlang,所以先安装erlang,然后再安装RabbitMQ; 下载RabbitMQ,下载地址: rabbitmq-server-3.5.6.exe和erlang,下载地址:o ...

  5. [Javascript] Linting JavaScript with ESLint

    ESLint is a JavaScript linter (static analysis tool) that offers full support for ES6, JSX, and othe ...

  6. 【转】warning C4819,该文件保存为 Unicode 格式以防止数据丢失,处理方法

    以下的解决方案只是把错误给屏蔽掉而已,并不能真正解决这个警告.仅供参考! 当项目引用到外部源代码后,经常出现4819错误,警告信息如下: warning C4819: 该文件包含不能在当前代码页(93 ...

  7. GetTickCount() 函数的作用和用法

    今天项目中60秒倒计时模块需要用到GetTickCount(),这个函数,在此做下整理和总结. 1.定义 For Release configurations, this function retur ...

  8. Android(java)学习笔记186:对ListView等列表组件中数据进行增、删、改操作

    1.ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V:  view  (显示的视图) C: controller 控制器 入门案例: acit ...

  9. Linux命令后台执行技巧小结

    1.最简单的方法: command & 例如: top & 此时显示job编号和后台进程号 [] 2.正在运行的程序放入后台 Ctrl - Z 3.查看有哪些后台进程及状态 jobs ...

  10. 【转】关于C#接口和抽象类的一些说明

    接口和抽象类 1.概念 什么是接口? 接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称.参数和返回值. 接口方法不能包含任何实现,CLR允许接口可以包含事件.属性.索引器. 一个类可以实现多个 ...