08 2011 档案

摘要:CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1usingSystem;2usingSystem.Collections.Generic;3usingSystem.ComponentModel;4usingSystem.Data;5usingSystem.Drawing;6usingSystem.Text;7usingSystem.Windows.Forms;8//先添加如下引用:9usingSystem.Diagnostics;1 阅读全文
posted @ 2011-08-31 11:07 therockthe 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:本文将讨论的是.NET并行编程中的Winform多线程编程基本原理,希望这些基础能让大家入门更加轻松。AD: 本文在这里将从.NET并行计算讲起,主要环境为Winform多线程编程。希望通过本文能对大家了解Winform多线程编程有所帮助,用好.NET并行计算。51CTO向您推荐《WinForm应用与开发视频教程-WinForm教程》首先我们创建一个Winform的应用程序,在上面添加一个多行文本框和一个按钮控件,按钮的事件如下:Thread.Sleep(1000); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 阅读全文
posted @ 2011-08-27 16:05 therockthe 阅读(657) 评论(0) 推荐(0) 编辑
摘要:BackgroundWorker 在执行DoWork事件时该如何取消呢? 方法1 DoWork 执行一个(耗时)循环 方法2 DoWork执行一个(耗时)方法[注:方法没有循环] 见代码:方法1中DoWork事件执行的是一个for循环(foreach,while.....) 取消操作很简单,只要在循环中判断即可 看代码---------代码是从网上拷贝下来的,这种例子网上很多 view plaincopy to clipboardprint?#region using System; using System.Collections.Generic; using System.Linq; .. 阅读全文
posted @ 2011-08-27 14:47 therockthe 阅读(6628) 评论(6) 推荐(3) 编辑
摘要:概述在应用程序中,可能会遇到一些执行耗时的功能操作,比如数据下载、复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,执行结束后结果显示到用户界面上,这样可避免造成用户界面长时间无响应情况。在.NET 2.0及以后的版本中,FCL提供了BackgroundWorker组件来方便的实现这些功能要求。 组件介绍BackgroundWorker类位于System.ComponentModel 命名空间中,通过该类在单独的线程上执行操作实现基于事件的异步模式。下面对BackgroundWorker类的主要成员进行介绍。 BackgroundWorker类的第1个主要方法是RunWorkerA. 阅读全文
posted @ 2011-08-27 13:42 therockthe 阅读(249) 评论(0) 推荐(0) 编辑
摘要:C#窗体的多线程一直是个难题,总是要出现奇奇怪怪的错误。今天开发alexSEO软件时,出现了在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。主要出现问题代码如下:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicvoidrunSEO(){while((urlhead=sr.ReadLine())!=null){try{num=num+1;HttpWebRequestrequest=(HttpWe 阅读全文
posted @ 2011-08-26 16:58 therockthe 阅读(335) 评论(0) 推荐(0) 编辑
摘要:WinForm二三事(一)消息循环2009-11-04 10:30 by 横刀天笑, 6507 visits, 收藏, 编辑 在进入正文之前,想请大家先欣赏下面两段代码: 1: //这是一个控制台程序,请先添加System.Windows.Form.dll的引用 2: using System.Windows.Form; 3: 4: public class ConsoleApplicationShowDialog 5: { 6: static void Main() 7: { 8: Form frm = new Form();... 阅读全文
posted @ 2011-08-26 16:14 therockthe 阅读(554) 评论(0) 推荐(1) 编辑
摘要:WinForm加载时各事件的顺序真是没有找到好的介绍,那就自己来试吧。记录在这里,将来还会继续更新。view plaincopy to clipboardprint?publicpartialclassTestForm:Form{publicTestForm(){Console.WriteLine(1);InitializeComponent();Console.WriteLine(2);}protectedoverridevoidOnLoad(EventArgse){Console.WriteLine(3);base.OnLoad(e);Console.WriteLine(4);}prote 阅读全文
posted @ 2011-08-25 18:31 therockthe 阅读(6013) 评论(0) 推荐(4) 编辑
摘要:VS2008、C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来。一个最直接的方法便是使用多线程。多线程编程的方式在WinForm开发中必不可少。本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作。-. WinForm多线程编程1. new Thread()新开一个线程,执行一个方法,没有参数传递: privatevoidDoWork(){Threadt=newThread(newThreadStart(this.DoSomething)) 阅读全文
posted @ 2011-08-25 13:36 therockthe 阅读(191) 评论(0) 推荐(0) 编辑
摘要:关键:下标的计算一维->二维一个n个元素的一维数组,转换为r行c列的二维数组对于一维数组中任意一个元素的下标i(0 <= i < n)其对应的二维数组下标为 (i / c, i % c), 显然, 只与列数c有关,而与行数r无关code like thisint[]a=newint[n];int[,]b=newint[r,c];for(inti=0;i<n;i++)b[i/c,i%c]=a[i];also can write like thisfor(inti=0;i<r;i++){for(intj=0;j<c;j++){b[i,j]=a[i*c+j];}} 阅读全文
posted @ 2011-08-18 17:21 therockthe 阅读(681) 评论(0) 推荐(0) 编辑
摘要:在编程工作中,我们会经常遇到,频繁地设置某些控件的属性,由于每次属性变化都会引发控件的重绘,导致屏幕闪烁,影响用户体验,此时,我们可以暂时禁止控件重绘,把所有的设置完成后,再重新允许重绘。[DllImport("user32")]private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);private const int WM_SETREDRAW = 0xB;//停止控件的重绘private void BeginPaint(){SendMessage(you 阅读全文
posted @ 2011-08-17 16:45 therockthe 阅读(597) 评论(1) 推荐(0) 编辑
摘要:一、委托Delegate一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如view plaincopy to clipboardprint?publicvoidHelloWorld(){Console.WriteLine("HelloWorld!");}publicvoidHelloWorld(stringname){Console.WriteLine("Hello,{0}!",name);}public void HelloWorld() { Console.WriteLin 阅读全文
posted @ 2011-08-17 13:49 therockthe 阅读(223) 评论(0) 推荐(0) 编辑
摘要:委托和什么打交道最多?当然是方法。定义委托的实例需要指定方法,异步调用还需要指定回调的方法(回调函数),如果这些方法十分复杂还则罢了,可是有些时候,尤其是回调函数的内容及其简单,一句话甚至不需要回调函数,程序的逻辑也可以。为了满足委托的要求,却要反复的定义这些方法,有点烦啊…从.Net2.0开始,这个问题开始有了解决的办法,那就是匿名方法,看下面的例子 1: private void button1_Click(object sender, EventArgs e) 2: { 3: SampleDelegate dele = new SampleDelegate(m1); 4: dele.Be 阅读全文
posted @ 2011-08-17 10:41 therockthe 阅读(4523) 评论(0) 推荐(0) 编辑
摘要:view plaincopy to clipboardprint?using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.Remoting.Messaging; namespace AsyncCall { public partial clas. 阅读全文
posted @ 2011-08-17 01:32 therockthe 阅读(587) 评论(0) 推荐(0) 编辑
摘要:开发语言:C#3.0IDE:Visual Studio 2008一、C#线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数,如下图所示。 如果任务管理器没有“线程数”列,可以【查看】>【选择列】来显示“线程计数”列。从上图可以看出,几乎所有的进程都拥有两个以上的线程。从而可以看出,线程是提供应用程 阅读全文
posted @ 2011-08-17 01:30 therockthe 阅读(166) 评论(0) 推荐(0) 编辑
摘要:C#异步调用四大方法是什么呢?C#异步调用四大方法的使用是如何进行的呢?让我们首先了解下什么时候用到C#异步调用:.NET Framework 允许您C#异步调用任何方法。定义与您需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。BeginInvoke 方法用于启动C#异步调用。它与您需要异步执行的方法具有相同的参数,只不过还有两个额外的参数(将在稍后描述)。BeginInvoke 立即返回,不等待C#异步调用完成。BeginInvoke 返回 IasyncResult,可用于监视调用进度。EndInvok. 阅读全文
posted @ 2011-08-17 01:20 therockthe 阅读(553) 评论(0) 推荐(0) 编辑
摘要:以WeatherForecast为例. 需求: 用户在窗体上点击一个按钮, 程序去网络上查询天气情况, 并把结果显示在窗体上. 网络查询是一个耗时任务, 在等待结果的同时, 用户将看到一个旋转的时钟动画表示程序正在查询.模式为:窗口类MainWindow中有耗时函数: string FetchWeatherFromInternet().窗口类MainWindow中包含一个函数 UpdateUIWhenWeatherFetched(string result), 用于把任务结果显示在界面上.当用户点击按钮时, 在 btnFetchWeather_Click() 中, 如果是同步调用, 代码很简单 阅读全文
posted @ 2011-08-16 18:32 therockthe 阅读(473) 评论(0) 推荐(0) 编辑
摘要:WPF中UI线程队列由Dispatcher来管理和调度,所以当用户线程中更新UI时,必须通过Dispatche来调度,下面这个小例子将给用户展示如何在用户线程中更新当前的时间.前台的XAML代码如下:<Windowx:Class="ThreadInvoke.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title=&q 阅读全文
posted @ 2011-08-16 18:10 therockthe 阅读(1623) 评论(0) 推荐(0) 编辑
摘要:在上一篇中我们分析了Win32和WinForm编写GUI应用程序会面对的主要问题。总结下来最重要的就是:如何高效的从Worker线程中更新界面。所以首先让我们看看WPF中是如何达到这个目的的。 DispatcherObject的使用 DispatcherObject类有两个成员方法,CheckAccess和VerifyAccess。CheckAccess功能和WinForm中Control.InvokeRequired属性相同,当调用线程与对象的创建线程不是同一个实例时,返回False。VerifyAccess则是抛出异常。 DispatcherObject还有一个Dispatcher的属性, 阅读全文
posted @ 2011-08-16 17:55 therockthe 阅读(416) 评论(0) 推荐(0) 编辑
摘要:书接前文,前篇文章介绍了WPF中的Dispatcher,由于概念太多,可能不是那么好理解。这篇文章继续讨论,希望在线程和Dispatcher这个点上,能把它讲透。从哪说起? 按照惯例,在深入问题之前,先找一个插入点,希望这个插入点能为朋友们所理解。 新建一个Window程序,代码如下:int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ RegisterWindowClass(hInstance); //1 HWND hWnd = CreateWi. 阅读全文
posted @ 2011-08-16 17:39 therockthe 阅读(522) 评论(0) 推荐(0) 编辑
摘要:在我们寻求帮助的时候,最不愿意听到的答复是:很抱歉,在当前版本的产品中还没有实现该功能... 在WPF中显示动态的GIF图像时便遇到了这样的问题,WPF中强大的Image控件却不支持动态的GIF(其只能显示第一帧).当然,我们可以说WPF强大的动画能力,让我们完全有理由抛弃传统的GIF动画,但如某种情况下如果你觉得使用动态的GIF更合适的话(比如QQ表情,因为GIF是利于保存和传输的),没关系,本篇随笔将帮助你解决这个问题.1,曾有过的尝试:我们在实际开发过程中也遇到显示动态GIF的问题.发现普通的Image控件不能正常显示后,我们又发现网页浏览器却是可以的,以及windows XP的&quo 阅读全文
posted @ 2011-08-16 15:33 therockthe 阅读(676) 评论(0) 推荐(0) 编辑
摘要:private void Window_Loaded(object sender, RoutedEventArgs e){ var task = this.Dispatcher.BeginInvoke(new Action(() => { //这里执行其它耗时操作 })); task.Completed += new EventHandler(task_Completed);}void task_Completed(object sender, EventArgs e){//执行完成后的操作,如隐藏加载提示文字,显示加载完成后的数据等} 阅读全文
posted @ 2011-08-16 14:46 therockthe 阅读(1170) 评论(1) 推荐(0) 编辑
摘要:这是一个普遍的问题:如果我们再程序中使用了多线程技术,而工作线程(后台线程)如果需要更新界面上的元素(例如进度条等),就会有一个线程安全性问题,因为进度条是由主线程创建出来的。关于这一点,大致上看,WPF的机制与Windows Forms是没有差别的。我们在Windows Forms中需要按照下面的方式更新窗体元素。 using System;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication1{ public partial class Form1 : Form { publi 阅读全文
posted @ 2011-08-16 14:18 therockthe 阅读(451) 评论(0) 推荐(0) 编辑
摘要:前言 谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际上消息是被Post到特定窗口所在线程的消息队列,应用程序的消息循环再不断的从消息队列当中获取消息,然后再派发给特定窗口类的窗口过程来处理,在窗口过程中完成一次用户交互。 其实,WPF的底层也是基于Win32的消息系统,那么对于WPF应用程序来说,它是如何跟Win32的消息交互,这里到底存在一个什么样的机制?接下来我会通过下面几篇博文介绍这个消息机制: WPF的消息机制(一)-让应用程序动起来 W. 阅读全文
posted @ 2011-08-16 12:19 therockthe 阅读(8514) 评论(2) 推荐(2) 编辑
摘要:Silverlight 2.0去掉了原来的downloader对象,代之以WebClient对象。WebClient类为Silverlight插件提供了一整套的HTTP客户端功能。可以下载应用程序数据,比如XAML内容,附加的程序集或者诸如图片的媒体文件。WebClient类可以根据程序的需要下载内容,可以异步呈现或者利用下载的内容,而不是随HTML页面一起下载。如果你要按照一定的序列替换Silverlight内容,不需要刷新页面。比较常见的来自是从视频库中播放视频,但本节是以播放图片为例子的。关于WebClientWebClient请求是异步的,大部分的交互操作都是依靠事件处理器来完成的。通 阅读全文
posted @ 2011-08-16 10:53 therockthe 阅读(209) 评论(0) 推荐(0) 编辑
摘要:Application.AddMessageFilter这个方法可以接收系统发出的消息:首先定义一个类,继承IMessageFilter接口代码如下: internal class MyMessager : IMessageFilter { //截取消息,进行处理 public bool PreFilterMessage(ref System.Windows.Forms.Message m) { switch (m.Msg) { case 513: //拦截左键单击事件 MessageBox.Show("左键被拦截!"); return true; case 516: // 阅读全文
posted @ 2011-08-15 11:46 therockthe 阅读(182) 评论(0) 推荐(0) 编辑
摘要:解决方案: 1.textbox 2.textblock 加入以上三个属性 TextWrapping=Wrap HorizontalScrollBarVisibility=Disabled AcceptsReturn =true 解决过程: 为了使TextBlock能自动换行,并且在指定了高度的情况下必要时候出现纵向滚动条,我把TextBlock包在了ScrollViewer中,为 解决方案:1.textbox 2.textblock 加入以上三个属性TextWrapping="Wrap" HorizontalScrollBarVisibility="Disable 阅读全文
posted @ 2011-08-14 18:36 therockthe 阅读(278) 评论(1) 推荐(0) 编辑
摘要:在 TextBlock 設定文字時,也可以使用較直覺的內部文字格式,而不使用明確的 Text 屬性集,如以下範例:Copy Code <TextBlock>Hello, world!</TextBlock>注意事項:設定 Text 屬性時並不會保留前置或尾端空白字元,只會保留內部空白字元。 如需以 XAML 處理空白字元的詳細資訊,請參閱 XAML 概觀。 使用 Run 和 LineBreak 物件TextBlock 並不會呈現單一字串,它也可以呈現不同 Run 項目中所包含的一系列字串,其中每一個項目可以擁有不同的字元層級字型屬性。 LineBreak 物件表示 Te 阅读全文
posted @ 2011-08-14 18:32 therockthe 阅读(723) 评论(0) 推荐(0) 编辑
摘要:#region Create Style In Code /// <summary> /// Creates a a Style in code /// </summary> private Style CreateStyleInCode() { //XAML code is as shown below, nice and simply really //<Style TargetType="ListBoxItem"> // <Setter Property="TextElement.FontSize" Val 阅读全文
posted @ 2011-08-14 16:18 therockthe 阅读(666) 评论(0) 推荐(0) 编辑
摘要:在以前的文章使用WPF Resource以及Transform等技术实现鼠标控制图片缩放和移动的效果里面,介绍了如何在WPF里面移动和放大缩小图片,程序也支持使用滚轮的方式缩放图片。然而前面文章里介绍的缩放功能只能以图片中心为原点来实现,但是这种功能往往并不是客户想要的,我们看图片的时候,往往都喜欢以鼠标放在图片的焦点为原点进行图片的缩放。咋看起来,实现这个功能也不是很难, ScaleTransform类里面定义了CenterX和CenterY两个属性就是用来设置缩放的原点坐标的。将这两个属性分别赋予鼠标的X, Y坐标值,就可以实现对原始图片,以鼠标位置为原点缩放图片了。但是,请注意,我说的原 阅读全文
posted @ 2011-08-13 13:32 therockthe 阅读(500) 评论(0) 推荐(0) 编辑
摘要:private void Image_MouseDown(object sender, MouseButtonEventArgs e) { Image img = sender as Image; BitmapImage image = new BitmapImage(new Uri(System.AppDomain.CurrentDomain.BaseDirectory+@"Images\2.jpg", UriKind.Absolute)); img.Source = image; } 阅读全文
posted @ 2011-08-13 11:23 therockthe 阅读(685) 评论(0) 推荐(0) 编辑
摘要:XAML中:<Grid> <Button Height="50" HorizontalAlignment="Left" Name="MyButton" VerticalAlignment="Top" Width="133" Margin="100,100,0,0" MouseDown="MyMouseDown"> <Image Source="Images\1.jpg" Width="100&qu 阅读全文
posted @ 2011-08-12 22:20 therockthe 阅读(358) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/wxdtk1989/archive/2011/08/10/2133627.html软件介绍:本软件使用虾米网的资源,真正下载虾米网的音乐要用积分,所以在这不添加下载功能。代码也只贴部分。我用的NetFramework4.0 不知道在别的电脑上能不能支持。api是怎么得到的,就是下载它的swf文件,然后反编译,分析代码找到xml地址,MP3地址是加密的,解密算法也是在swf文件里,有兴趣的同学可以研究一下。还有个budge ,mediaElement不在咋了,pause不好使,就是停不下,所以改成了静音效果,伪装成暂停。下载地址(非源码):http: 阅读全文
posted @ 2011-08-12 21:55 therockthe 阅读(556) 评论(0) 推荐(0) 编辑
摘要:WPF(Windows Presentation Foundation)应用程序在没有图形加速设备的机器上运行速度很慢是个公开的秘密,给用户的感觉是它太吃资源了,WPF程序的性能和硬件确实有很大的关系,越高档的机器性能越有优势。 程序性能改善不是一蹴而就的,好的设计可以消除影响性能的问题,例如,在运行时构造对象就会对程序的性能造成影响。虽然WPF通过增强的导航等功能提供了更丰富的用户界面,但你应该考虑你的用户是否的确需要富图形界面,尽管WPF有这样那样的问题,但在UI设计,特别是自定义风格和控件模板方面,的确给开发人员提供了不少灵活性。 图 1 WPF架构,蓝色是Windows组件,褐色是WP 阅读全文
posted @ 2011-08-12 19:31 therockthe 阅读(5204) 评论(0) 推荐(4) 编辑
摘要:<Button.Template> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image x:Name="Normal" Source="Normal.png"/> <Image x:Name="Pressed" Source="Pressed.png" Visibility="Hidden"/> <Image x:Name="Dis 阅读全文
posted @ 2011-08-12 19:22 therockthe 阅读(1257) 评论(0) 推荐(0) 编辑
摘要:假设一个应用程序中,某个窗口需要使用样式,但是样式非常多,写在一个窗口中代码分类不方便。最好Style写在专门的xaml文件中,然后引用到窗口中,就像HTML引用外部css文件一样。 实现方法: 1.创建新建项添加/资源字典Style.xaml,并添加Style样式 Code: ResourceDictionaryxmlns= http://schemas.microsoft.com/winfx/20 假设一个应用程序中,某个窗口需要使用样式,但是样式非常多,写在一个窗口中代码分类不方便。最好Style写在专门的xaml文件中,然后引用到窗口中,就像HTML引用外部css文件一样。 实现方法: 阅读全文
posted @ 2011-08-12 12:54 therockthe 阅读(11529) 评论(1) 推荐(0) 编辑
摘要:Assembly和AppDomain的一些关于动态加载程序集的函数有些令人头疼,但细细研究后还是可以将他们区分的。 这些函数大致可以分为四类:第一类:加载到Load Context内Load Context:Load Context是所有动态加载程序集首选应该被加载到的地方。它只能加载在AppDomain信息中的ApplicationBase目录以及附带的PrivateBinPath目录内的程序集(关于这两个目录:可以参考另一篇文章:http://www.cnblogs.com/mgen/archive/2011/05/02/2034371.html) 执行这个操作的方法是: Assembly 阅读全文
posted @ 2011-08-11 17:56 therockthe 阅读(3837) 评论(1) 推荐(2) 编辑
摘要:private void OpenForm(Type type) { if (Application.OpenForms[type.Name] != null) { Application.OpenForms[type.Name].Show(); } else { //Assembly asm = Assembly.Load(type.Assembly.FullName); Form NewForm = (Form)Activator.CreateInstance(type); NewForm.Show(); } } OpenForm(typeof(Form1)); 阅读全文
posted @ 2011-08-11 16:39 therockthe 阅读(280) 评论(0) 推荐(0) 编辑
摘要:1.相机2.光源3.模型4.素材<Viewport3D x:Name="_vw"> <!-- 相机 --> <Viewport3D.Camera> <PerspectiveCamera x:Name="camera" Position="3,-1,4" LookDirection="0,0,-1" FieldOfView="90"></PerspectiveCamera> </Viewport3D.Camera> <! 阅读全文
posted @ 2011-08-09 13:08 therockthe 阅读(580) 评论(0) 推荐(0) 编辑
摘要:WPF中使用Panel进行页面布局,Panel是一个抽象类,它作为所有Panel面板控件的基类。Panel并不是继承自Control类,而是直接从FrameworkElement继承。看Panel的继承关系:Panel主要有以下这么几个派生类:Canvas、DockPanel、Grid、StackPanel、VirtualizingStackPanel、WrapPanel。下面分别对这几个面板控件进行描述:一、Canvas在Canvas区域中,通过指定相对于其的坐标来指定子控件的位置。总共可以设置四个位置的坐标:Left、Right、Top、Bottom。1) Xaml中指定在Xaml中,Ca 阅读全文
posted @ 2011-08-09 12:46 therockthe 阅读(328) 评论(0) 推荐(0) 编辑
摘要:Winform里:ElementHost elementHost1 = new ElementHost ();UserControl1 us; //WPF控件us = new UserControl1();elementHost1.Child = us;us.ParentForm = this;UserControl1 里要关闭 Winform:public System.Windows.Forms.Form ParentForm{get;set;}在要用到的地方就可以用:this.ParentForm.Close(); 阅读全文
posted @ 2011-08-08 14:06 therockthe 阅读(1609) 评论(0) 推荐(0) 编辑
摘要:35.4 在WPF中添加3D特性本节介绍WPF中的3D特性,其中包含了开始使用该特性的信息。提示:WPF中的3D特性在System.Windows.Media.Media3D命名空间中。为了理解WPF中的3D特性,一定要知道坐标系统之间的区别。图35-22显示了WPF 3D中的坐标系统。原点位于中心。X轴的正值在右边,负值在左边。Y轴是垂直的,正值在上边,负值在下边。Z轴在指向观察者的方向上定义了正值。图 35-22 表35-9描述了最重要的类及其功能。表 35-9类说 明ViewPort3DViewPort3D定义了3D对象的渲染表面。这个元素包含3D绘图的所有可见元素ModelVisual 阅读全文
posted @ 2011-08-08 10:35 therockthe 阅读(1769) 评论(1) 推荐(0) 编辑
摘要:Add the code添加代码Before we start digging into the nuts and bolts, make sure you import the using System.Windows.Media.Media3D namespace into the code-behind. That namespace has all of the classes we'll be working with:首先要确认导入命名空间system.windows.media.media3.这个命名空间有所有我们需要的类:using System.Windows.Med 阅读全文
posted @ 2011-08-08 10:16 therockthe 阅读(407) 评论(1) 推荐(0) 编辑
摘要:Getting Started With the CodeI'll assume you have a basic understanding of WPF and how to create a basic WPF user interface with XAML. So with that, let's jump in and create a new WPF application in VS.Net 2005. Add the following XAML to the app to create a simple layout with a panel for but 阅读全文
posted @ 2011-08-08 10:15 therockthe 阅读(505) 评论(0) 推荐(0) 编辑
摘要:The purpose of this tutorial is to provide the simplest explanation and examples possible of how to create 3D graphics with Windows Presentation Foundation (WPF) (formerly known as "Avalon"). It is not a comprehensive guide to 3D modeling, but simply a primer for those who have no knowledg 阅读全文
posted @ 2011-08-08 10:14 therockthe 阅读(679) 评论(0) 推荐(0) 编辑
摘要:作者:JimmyEYE 日期:2009-12-27字体大小: 小 中 大 原文地址:http://www.wpftutorial.net/IntroductionTo3D.html原文作者:Christian Moser译者:JimmyEYEWPF 3D概述3D 图形基础生成3D图形的基本思想是能得到一个物体的三维立体模型(model)。由于我们的屏幕只有二维,因而我们定义了一个用于给物体拍照的照相机(Camera)。拍到的照片其实是物体到一个平坦表面的投影。这个投影由3D渲染引擎渲染成位图。引擎通过计算所有光源对3D空间中物体的投影面反射的光量,来决定位图中每个像素点的颜色。物体的每一个表面 阅读全文
posted @ 2011-08-08 10:08 therockthe 阅读(604) 评论(0) 推荐(0) 编辑
摘要:目标:画一个立方体根据上篇画三角形的步骤,我们知道2个三角形可以画1个四边形,一个立方体有6个面,如果伪3D的话则只需要画3个平面就可以了(背后隐藏着3个平面),如下如果给立方体添加动画(如旋转动画,那么就需要看到背面的平面),这时候就需要画6个平面.我们需要给每个平面都构造2三角形,即6个点,比如其中一个 <GeometryModel3D> <GeometryModel3D.Geometry> <MeshGeometry3D Positions=" -0.5,0.5,-0.5 -0.5,-0.5,-0.5 -0.5,-0.5,0.5 -0.5,-0.5 阅读全文
posted @ 2011-08-08 09:56 therockthe 阅读(407) 评论(2) 推荐(1) 编辑
摘要:WPF 3D基础(1)2010-12-23 13:34 by Clingingboy, 911 visits, 收藏, 编辑 构建3D坐标系使用3D Tools构建3D坐标系 <Viewport3D> <Viewport3D.Camera> <PerspectiveCamera Position="-2,2,2" LookDirection="2,-2,-2" UpDirection="0,1,0"/> </Viewport3D.Camera> <!--x--> <to 阅读全文
posted @ 2011-08-08 09:55 therockthe 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:publicImageUniteImage(intwidth,intheight,Imageimg1,Imageimg2){System.Drawing.Imageimg=newSystem.Drawing.Bitmap(width,height);System.Drawing.Graphicsg=System.Drawing.Graphics.FromImage(img);g.Clear(System.Drawing.Color.Transparent);g.DrawImage(img1,0,0,img1.Width,img1.Height);g.DrawImage(img2,0,0,im. 阅读全文
posted @ 2011-08-07 21:16 therockthe 阅读(4182) 评论(0) 推荐(0) 编辑
摘要:private BitmapImage GetImageSource(Image img){ System.IO.MemoryStream ms = new System.IO.MemoryStream(); byte[] imagedata = null; img.Save(ms1, System.Drawing.Imaging.ImageFormat.Png); imagedata = ms1.GetBuffer(); BitmapImage bitImg = new BitmapImage(); System.IO.MemoryStream ms2 = new System.IO.Me. 阅读全文
posted @ 2011-08-07 21:07 therockthe 阅读(963) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;using System.IO;namespace Microsoft.Form.Base{ class ImageToByte { /// <summary> /// 图片转换成字节流 /// </summary> /// <param name="img">要转换的Image对象</param> /// <retu 阅读全文
posted @ 2011-08-07 20:17 therockthe 阅读(109) 评论(0) 推荐(0) 编辑
摘要:首先看看XAML代码:(注意下面加粗的部分)<Window x:Class="WindowsApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WinForm控件与WPF控件的交互" Height="400" Width="600&qu 阅读全文
posted @ 2011-08-07 19:32 therockthe 阅读(503) 评论(0) 推荐(0) 编辑
摘要:Storyboard类继承自基类Timeline,但可以包含几个时间线。Storyboard类可以用于控制时间线。表35-6描述了Storyboard类的方法。Storyboard类的方法 说 明Begin() Begin()方法启动与情节板关联的动画BeginAnimation() BeginAnimation()方法可以为一个依赖属性启动单个动画CreateClock() CreateClock()方法返回一个Clock对象,用于控制动画Pause(),Resume() 美国服务器租用商提醒您使用Pause()和Resume()可以暂停、恢复动画的播放Seek() 使用Seek()方法,. 阅读全文
posted @ 2011-08-07 18:30 therockthe 阅读(510) 评论(0) 推荐(0) 编辑
摘要:SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.OptimizedDoubleBuffer, true); // 双缓冲 this.UpdateStyles(); 阅读全文
posted @ 2011-08-03 17:03 therockthe 阅读(3672) 评论(0) 推荐(0) 编辑
摘要:引言 在之前的《创建无阻塞的异步调用》中,已经介绍过异步调用的编写步骤和实施原理。异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能、可伸缩应用程序的关键。在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作。我们通常使用异步完成许多计算型、IO型的复杂、耗时操作,去取得我们的应用程序运行所需要的一部分数据。在取得这些数据后,我们需要将它们绑定在UI中呈现。当数据量偏大时,我们会发现窗体变成了空白面板。此时如果用鼠标点击,窗体标题将会出现”失去响应”的字样,而实际上UI线程仍在工作着,这对用户来说是一种极度糟糕的体验。如果你希望了解其中的原因(并不复杂:)), 阅读全文
posted @ 2011-08-03 11:33 therockthe 阅读(601) 评论(0) 推荐(0) 编辑
摘要:分而治之——窗体与数据的异步加载C/S模式的客户端通常需要处理大量的数据,当数据量较大而窗体的控件多功能复杂的时候,如果窗体和数据同步加载,将会使程序的性能大大降低,比如说窗体在加载的时候会变成一片空白,等数据全部加载完了窗体的控件才显示出来。这种情况下用户只能等待窗体的完全加载,而不能做任何其他的事情,降低了用户的体验度。采用异步加载的方式的话,可以让与数据无关的部分先加载,而让大量的数据处理以异步的方式进行,即常说的在后台处理。 .net 2.0提供了一种非常简单的机制来实现这样的异步处理,System.Windows.Forms中的类BackgroundWorker是处理这一任务的主要. 阅读全文
posted @ 2011-08-02 22:11 therockthe 阅读(772) 评论(0) 推荐(0) 编辑
摘要:点击下载:android源码之电影购票源码 阅读全文
posted @ 2011-08-01 17:08 therockthe 阅读(218) 评论(0) 推荐(0) 编辑
摘要:1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。在后面会介绍如何读取assets文件夹的资源! res文件夹里面的多个文件夹的各自介绍(来自网上的Android开发指南中文版内容):目录Directory资源类型Resource Typesres/anim/XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象re 阅读全文
posted @ 2011-08-01 14:17 therockthe 阅读(280) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示