WPF有没有微软放弃wpf win10官方提供的大型源码WPF有没有微软放弃wpf win10官方提供的大型源码

WPF老矣,尚能饭否——且说说WPF今生未来中:策略
本文接上文《WPF老矣,尚能饭否——且说说WPF今生未来(上):担心》继续。“上篇”中部分精彩的点评:虽然WPF不再更新了,但是基于WPF的技术还是在发展着,就比如现在的WinRT,只不过API换了一套而已,xaml还是xaml,数据绑定还是数据绑定,依赖属性还是依赖属性,模板还是模板。其实学过WPF的转WinRT还是比较爽的,Blend的操作也没变,只不过现在WinRT的人才需求量的确有点坑。 最后感谢WPF给我们带来MVVM这种开发方式、开发模型。&& by @虽然winfrom本身停止更新,但是工具却在一直升级啊!比如说VS设计器,C#语法,第三方控件和开源组件等等。 & & 另外,WinForm基于Win32 api的设计本身就很成熟,从内容上来说基本上已经包罗万象,微软不更新也不会有问题。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& by @技术总是要更新换代的,有些人说换个API来赚钱,倒也搞笑,映射出好多人换个API就不会开发了。我倒觉得,人家更新归更新,我们开发者做的其实永远就一件事情,写好我们的代码,做好的产品。.NET的代码永远也就那样写,对吧。&&&&&&&&&&&&&&&& by @微软的新策略在2014年二月,微软任命了一个新的CEO,他就是萨提亚·纳德拉,来自微软云服务部门。 & 他将接替上任史蒂芬·鲍尔默,就是那位不懂移动市场的(首先是iPhone和Android),甚至可能是微软和竞争对手(苹果和三星)市场之争中败北的原因之一。 & &和他的前任相反的,萨提亚·內德拉为微软确定的全局目标是“云优先,移动优先”,因此要从跳出经典的桌面市场,这确实是一个合情合理的策略。但是准确的说,WPF是一个从“老”模型上设计出来的:这是一个典型的富桌面应用;与之相对的WinRT采用一个完全不同的设计模型,更加贴近移动平台需求。 & &当然了,桌面和单机市场并没有死亡,但是显然不再是独挑大梁。微软商店为了获取部分应用程序开发商的年收入,像苹果和微软这样的众多平台供应商都创建自己的“商店”,所有的发布和购买都在此。据我所知,很不幸,微软商店的应用程序必须是基于WinRT开发的,因此WPF开发的应用是不能发布到这个商店里。 & 注意到对于一些业务相关的应用是内部使用和部署的,或者大型的应用程序开发商比如做ERP系统的,他们有自己的分销渠道,因此这都不是问题;但是对于一个小型开发商来说,它就是问题了,因为你希望利用市场的透明性来保证在其他竞争对手之前抢占到市场。 & &越来越多的人在不知道从哪里获得一个新的应用的时候本能的选择使用在线商店的搜索功能。如果你开发一个WPF应用程序,你将很难发布产品,更不用提销售就更难了,因此,用WinRT开发吧。移动性如果你每天通过移动设备上的浏览器或者本地应用程序获取数据,那么你肯定懂得如今市场上的潮流趋势:你的应用需要移动版本! & WPF压根就不是一个为移动开发的主角,甚至配角都算不上,前几年,为Windows Phone定制的Silverlight一度亮相,作为当时的Windows Phone 7的开发工具。但是一个平台一套开发套件显然不是好主意,尽管可以共享一些过程和标记代码。 & &WinRT正是为此问题而诞生,因为它是一套为Windows 8+全系列平台设计的,从系统级别考虑一致性的,易于上手开发的通用工具集。其中有一些第三方控件支持WinRT,如:。维护成本如果你这些年一直在微软技术平台工作,那么你肯定知道微软花钱很谨慎,一个很好的原因是,首先,作为一个公司,得赚钱,还得比股东要求的更多,所以,能省则省吧;其次,很多看起来似乎很小的一个小功能实际上有很多的工作去做,Eric Lippert在他的博客里做了很生动的阐述: & &因此,当社区提起要修复一个bug或者一个新功能的时候,仅当它是类似下面两条这样的一个大问题才会被采纳: & &- 重大问题,比如安全漏洞,即使很少人会碰到 & &- 小变化但是无数人抱怨 & &同时开发WPF和WinRT将会暗示同时处理两套功能需求,同时修复两份bug,显然这不合理,尤其在微软削减开支的时候。可移植性想想什么是能让WPF“存活”下来的特质呢,比如作为可移植的技术开发客户端应用,但非常不幸,它没有。 & 已经有一个可移植版本的.NET(指学院派的,包含CLI):Mono,它可以在Windows下运行,同时也能在Linux、Unix和Mac上运行。[注:本文未提到微软.NET开源、可移植的最新消息] & &另外,Mono不是一个玩玩而已的技术,它实实在在的工作着,就我个人,我已经在Ubuntu服务器上和Jenkins集成服务上构建应用。 & &Mono支持大部分的.NET框架的大部分技术,唯独没有支持WPF;如果我记得没错的话,曾经有一个项目叫“Olive”曾经做过尝试,但没有真正的开始,因为工作量太大了,特别是底层呈现层。 & &Mono支持的唯一界面是WinForm,令人啼笑皆非的是,正因可移植性,WinForm才能比WPF活得更好。Silverlight综合征当我作为一个Silverlight开发人员的时候,我发现技术消亡的速度比我想象的要快得多。时光回到年,富互联网应用(RIA)还是一个很响亮的噱头,微软为此发布了自家的框架,Silverlight,并在随后的一系列微软事件中公开亮相,希望各个业务主管在他们的IT体系中运用。随后的2010年,直到2011年第一季度,我们就在开发Silverlight应用。 & 但是随后的某地举行的一次技术会议上,微软宣布停止推进Silverlight,转而开始推广HTML5生态体系(包括CSS和JavaScript)。但是官方却说Silverlight没变化,对此我非常怀疑,也通告报道此事,而后我的团队决定停止Silverlight开发,转向集中精力投入“经典”的WPF开发,顺带还能获得一些好处(比如,Silverlight不是“即插即用”的,而是首先需要管理员权限安装Silverlight运行环境。 & &值得庆幸的是,大部分的XAML和C#代码(大约85%)是和WPF共享的,因此没有损失太多,不需要做太多的确认我们就停下来了。 & &最终这是一个正确的决定,因为到2013年微软官方宣布Silverlight终止,很多的IT相关人员非常吃惊,因为他们没有收到任何前兆。 & &我想此类事情不会粗暴的再WPF身上发生,但是我认为,在当今的IT环境和上下文中,你肯定很失望,从此多疑,甚至完全不信任。[未完待续]鉴于在《WPF老矣,尚能饭否——且说说WPF今生未来(上):担心 》网友们评论的特别声明:葡萄城最近1月发布的和、依然对WPF、WinRT、SilverLight提供产品升级和技术支持。完整系列文章:WPF老矣,尚能饭否——且说说WPF今生未来(中):策略WPF老矣,尚能饭否——且说说WPF今生未来(下):安心
在前面的上.中篇中,我们已经可以看到园子里朋友的点评&后山见! WPF就比winform好! 激情对决&.看到大家热情洋溢的点评,做技术的我也很受感动.老实说,如何在本文收笔--WPF系列文章,我很紧张:我希望大家阅读完本系列文章后:各取所取.尽兴而归. 坦白的说,葡萄城作为一家专注.NET技术的公司(仅海外分公司之一的西安葡萄城已经成立 ...
近日微软公布了最新的WPF路线图,一片热议:对于老牌控件提供商葡萄城来说,这是WPF系列控件一个重要的机遇,因此,Spread Studio for WPF产品做了一次重要更新,并随着Spread Studio 8.0发布.鉴于此,选择翻译并整理了一篇自codeproject的文章:&Is WPF dead: the present and futur ...
为什么要学习WPF?许多朋友也许会问:既然表示层技术那么多,为什么还要推出WPF作为表示层技术呢?我们话精力学习WPF有什么收益和好处呢,这个问题我们从两个方面进行回答.首先,只要开发表示层程序就不可避免的要和4种功能性代码打交道,他们分别是:数据模型:现实世界中事物和逻辑的抽象.业务逻辑:据模型之间的关系和交互.用户界面:由控件构成,于用户进行交互的界面, ...
WPF实例,WPF实例源码,22个WPF实例源码 ================================================================================================ 本资料共包含以下附件:实例.part2.rar 实例.part3.rar 实例.part1.rar
http:// ...
微软曾经对WPF(代号Avalon)抱很大的期望--新一代的华丽用户界面平台,一统Web应用和桌面应用,Flash杀手,尽管微软口头上不承认.几年下来,WPF确实实现了当初的预期的大部分功能,但离称霸软件开发领域还有不小的距离.不过,刚转到 WinForm上一两年的开发人员们都很困惑,WinForm究竟还有没有未来.微软只是模糊地说短期内还是WinForm, ...
© CopyRight
Inc All Rights Reserved.
管理员邮箱: info @WPF有没有微软官方提供的特大型源码 - .NET面试当前位置:& &&&WPF有没有微软官方提供的特大型源码WPF有没有微软官方提供的特大型源码&&网友分享于:&&浏览:12次WPF有没有微软官方提供的大型源码WPF有没有微软官方提供的大型源码
------解决方案--------------------楼主,微软的产品没有开源的------解决方案--------------------lz是指的大型示例源码么,呵呵,最好网上搜下下------解决方案--------------------引用:楼主,微软的产品没有开源的
.net&framework在2008年1月开源了。------解决方案--------------------引用:Quote: 引用:
楼主,微软的产品没有开源的
.net&framework在2008年1月开源了。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有为什么要注册?
1. 可以直接免费从本站下载代码,防止邮件发送不到您的邮箱,或登录不了国外网站
2. 可以设定关键字,当有您关心的代码收录时,邮件通知您
3. 对这里的代码进行评分和评论
4. 可以和大家一起分享你的源代码,得到更多的建议
40万国外源码搜索
200万国内源码搜索
相关源代码
Clog - Client Logging, WPF Edition
WPF版CLog日志记录控件源代码及使用
C# 3.0, Windows, .NET 3.5, WCF, XAML, WPF, VS2008, CEO, Dev, QA
CLog可以让你在现有日志记录的系统中增加在服务器上记录客户端消息功能,它适用于任何WCF或ASP.NET Web服务用户。CLog是一个完全的日志提供系统,它有非常好的可定制性,线程级安全,能够序列化所有异常Exception类型,并可以在客户端或服务器端定制任何过滤机制:IP范围过滤,成员角色过滤,环境用户名过滤、机器名过滤时间范围过滤等……
文章提供详细的使用教程和升级方法,并提供各种实例源代码。
目前,CLOG还增加了下面几种扩展日志提供方法: 日志方法,简单的跟踪日志方法,一个新的微软企业开发库日志 程序。
CLOG能为不同的用户提供集中的日志记录,不仅可以记录基于浏览器的应用程序,还可以记录其它服务器上运行的程序。你可以轻易地在原来日志记录系统上升级到CLOG。
源代码原文下载:
A customizable log provider system that allows you to harness your existing logging system to log client side messages to your server using WCF. Includes WPF sample applications.
Clog is a log provider system, it is fully customizable, thread-safe, can serialize and log all Exception types, and allows filtering of messages both on the client and server side using custom or inbuilt filters, which so far consists of an IP Address Range Filter, a Role Membership filter, and three new filters including an Environment User Name Filter, a Machine Name Filter, and a Time Range Filter. In this release of Clog we have an extendible Log provider system, a log4net log strategy, a simple tracing log strategy, and a new Microsoft Enterprise Library Logging Application Block log strategy.
点击链接查看
从本站下载附件及源代码(1个附件,已经成功下载719次)
最值得关注的外文源代码
Clog - Client Logging, WPF Edition
DrawMe - A network ink-chat application exploring .NET 3.5, WPF and WCF
WCF / WPF Chat Application
Not OLE .Net/WPF container of MFC applications
评论(评论是增加积分的一个有效途径)
不怎样还可以挺好的非常好最好的
字数在300字内
请如实评论
系统中增加在服务器上记录客户端消息功能,它适用于任何WCF或ASP.NET Web服务用户。CLog是一
yezsoso&&nbsp日
谢谢分享,学习了
csense.name&&nbsp日
感谢分享,下来试试,正想搞个日志系统!
nicemia&&nbsp日
天涯沙漠&&nbsp日
谢谢楼主!!
天涯沙漠&&nbsp日
学习,学习
天涯沙漠&&nbsp日
每天都会增加数十万的优秀文档,而这一切离不开您的努力
天涯沙漠&&nbsp日
非常感谢猪猪分享!
小吉&&nbsp日
非常感谢楼主分享!
小吉&&nbsp日
值得学习!谢谢楼主分享
yndxstxy2010jrsx&&nbsp日
wanju&&nbsp日
不错的代码
杨杨洒洒&&nbsp日
学习,学习
paul&&nbsp日
好好学习啊
笑傲江湖&&nbsp日
nzd2007&&nbsp日
快乐学习每一天
一马平川&&nbsp日
yndxstxy2010jrsx&&nbsp日
gn_2012&&nbsp日
gn_2012&&nbsp日
字数在300字内
请如实评论
200万国内源码搜索微软开放Silverlight源码 向开源组织示好
阅读:73次&&&时间: 17:56:56&&
4月28日消息,微软公司日前对外公布其可选性Flash源代码,以期籍此对网络开发社区构成威胁,并更好地同Adobe展开竞争。
有可靠消息透露,微软公司将在下周举行的MIX07上对外公布其Silverlight技术的部分源代码,以此表示其对于开源组织的友善态度。&
消息来源同时指出微软将同期发布Silverlight第二个测试版,该产品是日前刚刚问世的一款跨浏览器的、跨平台的搜索引擎插件,可为网络带来空前的媒体体验和交互式应用程序体验。该项技术弥补了其他微软产品的不足,如Vista新的图形编辑窗口WindowsPresentationFoundation(WPF)。而同时微软公司对其的定位则是直指Adobe的Flash工具,能够快速便捷地获取网络上丰富的媒体资源。
具体到关于Silverlight哪方面源代码将会公布,目前还没有确切消息,而微软的公共关系部在周五也拒绝对此作出评论。
同时有消息来源称,微软意在构建RIAs(丰富的网络应用程序)的Expression工具箱的最终版本也将在MIX07上面世,尽管微软对此技术的工作计划是在两个月后完成。公司称Expression是另一款可令RIA设计者们放弃使用Adobe的产品,正式打入市场将在6月底。
微软公司将Expression视为是对Adobe最近发布的CreativeSuite3的有力竞争工具,同时该工具箱也是Silverlight的核心,因为公司的本意就是希望设计者们能够通过使用该工具创建应用程序并通过Silverlight传送。
微软公司一反常态地对开源组织示好的行为,也可以看作是对Adobe的有力回应,因为其本周早些时候宣称将于年底开放其用于FlexRIA开放环境下的软件开发包代码。
使用者们说,Adobe在吸引开发者们使用其RIA工具方面占据长期以来的领先地位,而开放其Flex部分源码的行为更会巩固其现有优势。微软如果想要赶上Adobe就需要明确其急需尽快吸引开发者使用Silverlight。
微软去年主办了第一届MIX,以此来吸引RIA网络设计者和开发者,也因此招徕了不少对微软心存敬意的观众。微软公司近年来在提供网络设计工具方面起停频繁,但是它们的Windows和Office产品却为其在台式机应用程序开发领域赢得了极大的成功。
ProAssurance 的IT开发者和分析师KeithCutcliffe说,他已经对Expression套装的工具进行了研究,并认为这是款可靠性很强的产品。“然而,我仍然坚持认为微软并不明确如何有效吸引广大设计者。”Cutcliffe曾经参加过首届MIX,但是下周的MIX将不会出席。
微软此举从策略上来讲,可称为是实现在网络领域一次飞跃的很好的平台,以此来实现同开发应用程序领域的诸如Adobe公司以及网络服务公司如Google和雅虎的竞争。Cutcliffe说,对于销售商来说,在吸引开发者的过程中采用最前沿的网络和多媒体设计技术是非常必要的。
Adobe并非微软在RIA领域的头号竞争对手。硅谷一家名为LaszloSystems的小公司已经拥有开发RIA的成熟工具,并且已经提供了其开源版本——OpenLaszlo,以便于开发者们可自行开发基于Flash和Ajax的应用程序。
对于竞争者而言是件好事,因为这会相应激发人们对于相关产品的兴趣。
【相关文章】
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved软件介绍 - [ WPF仿360卫士9.0界面设计 ]
仿照网上的一个代码写的,地址找不到了。
将窗体,控件什么的都封装到一个类库里面了,方便以后使用。
界面效果:
窗体模板,主要是实现一个无边框窗体,并添加阴影效果。
&Style&TargetType=&DazzleWPF:DazzleWindow&&
&&&&&Setter&Property=&AllowsTransparency&&Value=&true&/&
&&&&&Setter&Property=&Background&&Value=&Transparent&/&
&&&&&!--&Setter Property=&ResizeMode& Value=&CanResizeWithGrip&/&--&
&&&&&Setter&Property=&WindowStyle&&Value=&None&/&
&&&&&Setter&Property=&Template&&
&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&ControlTemplate&TargetType=&DazzleWPF:DazzleWindow&&
&&&&&&&&&&&&&&&&&Grid&Margin=&5&&
&&&&&&&&&&&&&&&&&&&&&Rectangle&Fill=&{DynamicResource {x:Static SystemColors.WindowBrushKey}}&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&Rectangle.Effect&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DropShadowEffect&BlurRadius=&10&&ShadowDepth=&0&/&
&&&&&&&&&&&&&&&&&&&&&&&&&/Rectangle.Effect&
&&&&&&&&&&&&&&&&&&&&&/Rectangle&
&&&&&&&&&&&&&&&&&&&&&Border&Background=&{TemplateBinding Background}&&&&
&&&&&&&&&&&&&&&&&&&&BorderBrush=&{TemplateBinding BorderBrush}&&&&
&&&&&&&&&&&&&&&&&&&&BorderThickness=&{TemplateBinding BorderThickness}&&&&
&&&&&&&&&&&&&&&&&&&&Padding=&{TemplateBinding Margin}&&&&
&&&&&&&&&&&&&&&&&&&&SnapsToDevicePixels=&{TemplateBinding SnapsToDevicePixels}&&
&&&&&&&&&&&&&&&&&&&&&&&&&ContentPresenter&/&
&&&&&&&&&&&&&&&&&&&&&/Border&
&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&/Setter.Value&
&&&&&/Setter&
  窗体类,代码也很简单,调用一下类WindowBehaviorHelper 的方法,实现缩放操作的修复,避免最大化覆盖任务栏等。
  再添加一下鼠标左键按下的拖动支持。
  就OK了。
public&class&DazzleWindow : Window
&&&&public&DazzleWindow()
&&&&&&&&this.DefaultStyleKey = typeof(DazzleWindow);
&&&&&&&&//缩放,最大化修复
&&&&&&&&WindowBehaviorHelper wh = new&WindowBehaviorHelper(this);
&&&&&&&&wh.RepairBehavior();
&&&&&&&&this.MouseLeftButtonDown += new&System.Windows.Input.MouseButtonEventHandler(DazzleWindow_MouseLeftButtonDown);
&&&&void&DazzleWindow_MouseLeftButtonDown(object&sender, System.Windows.Input.MouseButtonEventArgs e)
&&&&&&&&this.DragMove();
  窗体行为修复,主要代码来了:
public&class&WindowBehaviorHelper
&&&&&&&&private&const&int&WM_NCHITTEST = 0x0084;&&& //测试消息
&&&&&&&&private&const&int&WM_GETMINMAXINFO = 0x0024;//大小变化
&&&&&&&&private&Window WindowT&&&&&&&&&&&&&&& //目标窗口
&&&&&&&&private&int&WidthCorner = 3;&&&&&&&&&&&&&&& //拐角宽度
&&&&&&&&private&int&ThicknessTransparentBorder = 5; //阴影宽度
&&&&&&&&private&int&ThicknessBorder = 4;&&&&&&&&&&& //边框宽度
&&&&&&&&private&Point PointMouse = new&Point();&&&& //鼠标坐标
&&&&&&&&public&enum&HitTest : int&&&&&&&&&&&&&&&&&&&//测试句柄
&&&&&&&&&&&&#region 测试句柄
&&&&&&&&&&&&HTERROR = -2,
&&&&&&&&&&&&HTTRANSPARENT = -1,
&&&&&&&&&&&&HTNOWHERE = 0,
&&&&&&&&&&&&HTCLIENT = 1,
&&&&&&&&&&&&HTCAPTION = 2,
&&&&&&&&&&&&HTSYSMENU = 3,
&&&&&&&&&&&&HTGROWBOX = 4,
&&&&&&&&&&&&HTSIZE = HTGROWBOX,
&&&&&&&&&&&&HTMENU = 5,
&&&&&&&&&&&&HTHSCROLL = 6,
&&&&&&&&&&&&HTVSCROLL = 7,
&&&&&&&&&&&&HTMINBUTTON = 8,
&&&&&&&&&&&&HTMAXBUTTON = 9,
&&&&&&&&&&&&HTLEFT = 10,
&&&&&&&&&&&&HTRIGHT = 11,
&&&&&&&&&&&&HTTOP = 12,
&&&&&&&&&&&&HTTOPLEFT = 13,
&&&&&&&&&&&&HTTOPRIGHT = 14,
&&&&&&&&&&&&HTBOTTOM = 15,
&&&&&&&&&&&&HTBOTTOMLEFT = 16,
&&&&&&&&&&&&HTBOTTOMRIGHT = 17,
&&&&&&&&&&&&HTBORDER = 18,
&&&&&&&&&&&&HTREDUCE = HTMINBUTTON,
&&&&&&&&&&&&HTZOOM = HTMAXBUTTON,
&&&&&&&&&&&&HTSIZEFIRST = HTLEFT,
&&&&&&&&&&&&HTSIZELAST = HTBOTTOMRIGHT,
&&&&&&&&&&&&HTOBJECT = 19,
&&&&&&&&&&&&HTCLOSE = 20,
&&&&&&&&&&&&HTHELP = 21
&&&&&&&&&&&&#endregion
&&&&&&&&//构造函数
&&&&&&&&public&WindowBehaviorHelper(Window window)
&&&&&&&&&&&&this.WindowTarget =
&&&&&&&&//修复行为
&&&&&&&&public&void&RepairBehavior()
&&&&&&&&&&&&if&(WindowTarget == null)
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&this.WindowTarget.SourceInitialized += delegate
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&IntPtr handle = (new&WindowInteropHelper(WindowTarget)).H
&&&&&&&&&&&&&&&&HwndSource hwndSource = HwndSource.FromHwnd(handle);
&&&&&&&&&&&&&&&&if&(hwndSource != null)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&hwndSource.AddHook(WindowProc);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&};
&&&&&&&&//消息循环
&&&&&&&&private&IntPtr WindowProc(IntPtr hwnd, int&msg, IntPtr wParam, IntPtr lParam, ref&bool&handled)
&&&&&&&&&&&&switch&(msg)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&case&WM_NCHITTEST:
&&&&&&&&&&&&&&&&&&&&if&(WindowTarget.WindowState != WindowState.Normal)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&this.PointMouse.X = (lParam.ToInt32() & 0xFFFF);
&&&&&&&&&&&&&&&&&&&&this.PointMouse.Y = (lParam.ToInt32() && 16);
&&&&&&&&&&&&&&&&&&&&//窗口左上角
&&&&&&&&&&&&&&&&&&&&if&(this.PointMouse.X & this.WindowTarget.Left + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.ThicknessTransparentBorder + this.WidthCorner
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.ThicknessTransparentBorder + this.WidthCorner)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTTOPLEFT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口左下角
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.ThicknessTransparentBorder + this.WidthCorner
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder - this.WidthCorner)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTBOTTOMLEFT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口右上角
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder - this.WidthCorner
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.ThicknessTransparentBorder + this.WidthCorner)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTTOPRIGHT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口右下角
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder - this.WidthCorner
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder - this.WidthCorner)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTBOTTOMRIGHT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口左侧
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.ThicknessTransparentBorder + this.ThicknessBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTLEFT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口右侧
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X &= this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder - this.ThicknessBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTRIGHT);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口上方
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X & this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.ThicknessTransparentBorder + this.ThicknessBorder)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTTOP);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//窗口下方
&&&&&&&&&&&&&&&&&&&&else&if&(this.PointMouse.X & this.WindowTarget.Left + this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.X & this.WindowTarget.Left + this.WindowTarget.ActualWidth - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y & this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder
&&&&&&&&&&&&&&&&&&&&&&&&&& this.PointMouse.Y &= this.WindowTarget.Top + this.WindowTarget.ActualHeight - this.ThicknessTransparentBorder - this.ThicknessBorder)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&&&&&return&new&IntPtr((int)HitTest.HTBOTTOM);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&//其他消息
&&&&&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&case&WM_GETMINMAXINFO:
&&&&&&&&&&&&&&&&&&&&WmGetMinMaxInfo(hwnd, lParam);
&&&&&&&&&&&&&&&&&&&&handled =
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&default:
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&return&IntPtr.Z
&&&&&&&&//更改最小化最大化时窗口位置大小
&&&&&&&&private&void&WmGetMinMaxInfo(IntPtr hwnd, IntPtr lParam)
&&&&&&&&&&&&MINMAXINFO mmi = (MINMAXINFO)Marshal.PtrToStructure(lParam, typeof(MINMAXINFO));
&&&&&&&&&&&&int&MONITOR_DEFAULTTONEAREST = 0x;
&&&&&&&&&&&&IntPtr monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
&&&&&&&&&&&&if&(monitor != IntPtr.Zero)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&MONITORINFO monitorInfo = new&MONITORINFO();
&&&&&&&&&&&&&&&&GetMonitorInfo(monitor, monitorInfo);
&&&&&&&&&&&&&&&&RECT rcWorkArea = monitorInfo.rcW
&&&&&&&&&&&&&&&&RECT rcMonitorArea = monitorInfo.rcM
&&&&&&&&&&&&&&&&mmi.ptMaxPosition.x = Math.Abs(rcWorkArea.left - rcMonitorArea.left) - 3;
&&&&&&&&&&&&&&&&mmi.ptMaxPosition.y = Math.Abs(rcWorkArea.top - rcMonitorArea.top) - 3;
&&&&&&&&&&&&&&&&mmi.ptMaxSize.x = Math.Abs(rcWorkArea.right - rcWorkArea.left) + 6;
&&&&&&&&&&&&&&&&mmi.ptMaxSize.y = Math.Abs(rcWorkArea.bottom - rcWorkArea.top) + 6;
&&&&&&&&&&&&&&&&mmi.ptMinTrackSize.x = (int)this.WindowTarget.MinW
&&&&&&&&&&&&&&&&mmi.ptMinTrackSize.y = (int)this.WindowTarget.MinH
&&&&&&&&&&&&}
&&&&&&&&&&&&Marshal.StructureToPtr(mmi, lParam, true);
&&&&&&&&[DllImport(&user32&)]
&&&&&&&&internal&static&extern&bool&GetMonitorInfo(IntPtr hMonitor, MONITORINFO lpmi);
&&&&&&&&[DllImport(&User32&)]
&&&&&&&&internal&static&extern&IntPtr MonitorFromWindow(IntPtr handle, int&flags);
&&&&&&&&#region Nested type: MINMAXINFO
&&&&&&&&[StructLayout(LayoutKind.Sequential)]
&&&&&&&&internal&struct&MINMAXINFO
&&&&&&&&&&&&public&POINT ptR
&&&&&&&&&&&&public&POINT ptMaxS
&&&&&&&&&&&&public&POINT ptMaxP
&&&&&&&&&&&&public&POINT ptMinTrackS
&&&&&&&&&&&&public&POINT ptMaxTrackS
&&&&&&&&#endregion
&&&&&&&&#region Nested type: MONITORINFO
&&&&&&&&[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
&&&&&&&&internal&class&MONITORINFO
&&&&&&&&&&&&public&int&cbSize = Marshal.SizeOf(typeof(MONITORINFO));
&&&&&&&&&&&&public&RECT rcM
&&&&&&&&&&&&public&RECT rcW
&&&&&&&&&&&&public&int&dwF
&&&&&&&&#endregion
&&&&&&&&#region Nested type: POINT
&&&&&&&&[StructLayout(LayoutKind.Sequential)]
&&&&&&&&internal&struct&POINT
&&&&&&&&&&&&public&int&x;
&&&&&&&&&&&&public&int&y;
&&&&&&&&&&&&public&POINT(int&x, int&y)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&this.x =
&&&&&&&&&&&&&&&&this.y =
&&&&&&&&&&&&}
&&&&&&&&#endregion
&&&&&&&&#region Nested type: RECT
&&&&&&&&[StructLayout(LayoutKind.Sequential, Pack = 0)]
&&&&&&&&internal&struct&RECT
&&&&&&&&&&&&public&int&
&&&&&&&&&&&&public&int&
&&&&&&&&&&&&public&int&
&&&&&&&&&&&&public&int&
&&&&&&&&&&&&public&static&readonly&RECT E
&&&&&&&&&&&&public&int&Width
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&get&{ return&Math.Abs(right - left); }
&&&&&&&&&&&&}
&&&&&&&&&&&&public&int&Height
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&get&{ return&bottom - }
&&&&&&&&&&&&}
&&&&&&&&&&&&public&RECT(int&left, int&top, int&right, int&bottom)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&this.left =
&&&&&&&&&&&&&&&&this.top =
&&&&&&&&&&&&&&&&this.right =
&&&&&&&&&&&&&&&&this.bottom =
&&&&&&&&&&&&}
&&&&&&&&&&&&public&RECT(RECT rcSrc)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&left = rcSrc.
&&&&&&&&&&&&&&&&top = rcSrc.
&&&&&&&&&&&&&&&&right = rcSrc.
&&&&&&&&&&&&&&&&bottom = rcSrc.
&&&&&&&&&&&&}
&&&&&&&&&&&&public&bool&IsEmpty
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&get
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&return&left &= right || top &=
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&&&&&public&override&string&ToString()
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&if&(this&== Empty)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&return&&RECT {Empty}&;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&return&&RECT { left : &&+ left + & / top : &&+ top + & / right : &&+ right + & / bottom : &&+ bottom + & }&;
&&&&&&&&&&&&}
&&&&&&&&&&&&public&override&bool&Equals(object&obj)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&if&(!(obj is&Rect))
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&return&(this&== (RECT)obj);
&&&&&&&&&&&&}
&&&&&&&&&&&&public&override&int&GetHashCode()
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&return&left.GetHashCode() + top.GetHashCode() + right.GetHashCode() + bottom.GetHashCode();
&&&&&&&&&&&&}
&&&&&&&&&&&&public&static&bool&operator&==(RECT rect1, RECT rect2)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&return&(rect1.left == rect2.left && rect1.top == rect2.top && rect1.right == rect2.right && rect1.bottom == rect2.bottom);
&&&&&&&&&&&&}
&&&&&&&&&&&&public&static&bool&operator&!=(RECT rect1, RECT rect2)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&return&!(rect1 == rect2);
&&&&&&&&&&&&}
&&&&&&&&#endregion
售价:0个M币
相关Delphi源码:
热门标签:
Delphi源码搜索
Delphi源码推荐
热门源码推荐
热门Delphi源码
©2012}

我要回帖

更多关于 微软放弃wpf win10 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信