随笔分类 -  初学WPF

虽然玩C#有些日子了,但仅限于网络编程,开始学习WPF,感觉上手还是很快的
摘要:1.建一个WPF资源词典,在其中定义窗口样式,并在App.xaml中指定其为程序资源2.写一个继续自windows的类,并指定这个类的Style为第一步资源里的样式3.新建窗口时,分别把xaml文件和cs文件中的windows替换成第二步自定义的类源码下载http://files.cnblogs.com/Laro/TeryWindows.rar 阅读全文
posted @ 2014-01-28 19:43 Laro 阅读(883) 评论(0) 推荐(0)
摘要:使用如下的C#代码,我们可以判断局域网或者是互联网上的某台计算机,是否处于开机状态,并且,网络连接情况是否正常。 使用的原理是:通过调用PING的方法,能PING成功的为开机、并且网络连接状态正常。否则处于网络状态不正常或关机。 一、前提条件 在using中,使用如下的方法进行引用。 using System.Net.NetworkInformation; 二、功能代码 string message;message = "";Ping p = new Ping();try { PingReply r = p.Send(这里填写IP地址或计算机名称); if (r.Stat. 阅读全文
posted @ 2012-08-22 10:51 Laro 阅读(671) 评论(0) 推荐(1)
摘要:网上打了很多方法都无效,以下方法在WIN7pro中测试可用:通过直接使用WMI来获取using System.Management;string query = string.Format("SELECT * from Win32_Printer ");var searcher = new ManagementObjectSearcher(query);var printers = searcher.Get();foreach(var printer in printers){ Console.WriteLine(printer.Properties["Name& 阅读全文
posted @ 2012-06-19 11:25 Laro 阅读(3042) 评论(3) 推荐(3)
摘要:<Grid.Resources> <Style TargetType="{x:Type Button}" x:Key="formatTextStyle"> <Setter Property="FontFamily" Value="Palatino Linotype"></Setter> <Setter Property="Width" Value="30"></Setter> <Setter Pro 阅读全文
posted @ 2012-04-07 17:26 Laro 阅读(1213) 评论(0) 推荐(0)
摘要:public class MyBusinessObjects { string[] names = new string[] { "Côte de Blaye", "Boston Crab Meat", "Singaporean Hokkien Fried Mee", "Gula Malacca", "Rogede sild", "Spegesild", "Zaanse koeken", "Chocolade", " 阅读全文
posted @ 2011-09-21 08:27 Laro 阅读(364) 评论(0) 推荐(0)
摘要:在configuration节点添加:<userSettings> <WpfSmartClientStarter.Properties.Settings> <setting name="FTPPassword" serializeAs="String"> <value>dm189</value> </setting> </WpfSmartClientStarter.Properties.Settings> </userSettings>在cs文件中读取: st 阅读全文
posted @ 2011-09-05 11:55 Laro 阅读(681) 评论(0) 推荐(0)
摘要:前两天有同事问我怎么将图片存入数据库,即兴写了个列子.1.在数据库中,图片字段用varbinary(MAX)类型.程序代码(下附完整的例子下载): 1 using System; 2 using System.Linq; 3 using System.Windows; 4 using System.Windows.Media.Imaging; 5 using System.IO; 6 using System.Data.Linq; 7 8 namespace WpfUploadDispalyIMG 9 { 10 11 public partial class MainWindow : Wind 阅读全文
posted @ 2011-05-23 08:45 Laro 阅读(9036) 评论(2) 推荐(3)
摘要:一.如果是单纯的让其动起来只用在加载时: Duration duration = new Duration(TimeSpan.FromSeconds(10)); DoubleAnimation doubleanimation = new DoubleAnimation(100.0, duration);progbar.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);二.如果要其与某项操作相关有两种思路:1. 添加定时器,在规定每过几毫秒做某项操作并让Progresspar的值自增。2. 将Progresspar的值绑定到某个 阅读全文
posted @ 2011-04-14 20:44 Laro 阅读(313) 评论(0) 推荐(0)
摘要:private System.Windows.Threading.DispatcherTimer dt =new DispatcherTimer(); dt.Interval = TimeSpan.FromMilliseconds(1000); dt.Tick +=new EventHandler(dt_Tick); dt.Start(); void dt_Tick(object sender, EventArgs e) { //要执行的任务 }//最后不要忘记了dt.Stop();... 阅读全文
posted @ 2011-04-14 09:04 Laro 阅读(2688) 评论(0) 推荐(0)
摘要:网上查了很多方法,基本都是自己写一个列,再用程序来填充这列的值为行号,太复杂了。其实有个简单的思路就可以用3行代码实现这个功能:当DataGrid加载行时,将自身的索引值加1不就是行号了吗?将这个值写入表头(行)就行了。 dataGrid.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid_LoadingRow); //添加行号 public void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Ro 阅读全文
posted @ 2011-04-04 23:15 Laro 阅读(5038) 评论(0) 推荐(2)
摘要:Point p = Cursor.Position;int x = p.X;int y = p.Y;label1.Text = String.Format("Mouse X:{0}, Mouse Y :{1}", x, y);  阅读全文
posted @ 2011-03-24 15:52 Laro 阅读(254) 评论(0) 推荐(0)
摘要:思路如下:首先在子窗口定义委托和事件,然后在父窗口调用子窗口时订阅事件,并在事件中写入想让子窗口操作父窗口或传值的具体内容。代码如下:子窗口namespace WpfApplicationTest{ //定义委托 public delegate void ChangeTextHandler(string text); /// <summary> /// chrild.xaml 的交互逻辑 /// </summary> public partial class chrild : Window { //定义事件 public event ChangeTextHandler 阅读全文
posted @ 2011-03-18 12:02 Laro 阅读(475) 评论(0) 推荐(0)
摘要:粘一个自己实践的例子第一步:定义验证模型。View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace DecorationMS.WindowsBase{ class DMSValidatiionRule { private const string emailPatten = @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\ 阅读全文
posted @ 2011-03-17 11:28 Laro 阅读(1252) 评论(0) 推荐(0)
摘要:在WinForm时,可以定义一个基类继承自Form,从而在基类中重写和添加功能,要在WPF中实现类似方法要分为三步:1. 自定义一个基类MyWindow继承自Window.2.  将窗口的CS继承自MyWindow。3. 在XAML中引用MyWindow命名空间,并在使用其别名自定义WPF窗口。如下例重写Windows基类,自定义WPF窗口,实现改回车键为TAB:XAMLCS自定义基类 阅读全文
posted @ 2011-02-19 22:31 Laro 阅读(1412) 评论(0) 推荐(0)
摘要:在System.Windows.Input 里有着所有键的集合,经测试要注意以下几点(纯实践所得经验,还请高手指明下面不明白地方的原因):1. 普通情况下Key就够用了2. 当某个键在特定的环境下充当某种系统默认的功能时就要用到SystemKey,如Alt键在窗口中默认是激活菜单,这时用Key来判断就不起作用了。如下例作示,在textBox1中按右Alt键将还是激活菜单,而左Alt键盘却实现了换行的功能。[代码]3.组合键的使用,首先,组合键的实现是使用系统默认功能,所以必须用SystemKey,然后需要用到Keyboard.Modifiers,如:Alt+F[代码]4. 在支持换行的控件中( 阅读全文
posted @ 2011-02-19 18:58 Laro 阅读(840) 评论(0) 推荐(0)
摘要:有时需要新增线程执行可能有延迟的语句,如从远程数据库中提取数据实时验效时:System.Threading.Thread th =new System.Threading.Thread(()=>BackstageMethod(););th.Start();但是请注意根据WPF实现的安全模型,只有一个用户的对象自己创建的线程才能访问该对象,这就是说,后台线程不能直接修改界面对象。在WPF中,则需要使用控件上的System.Threading.Dispatcher对象来执行封送操作。Dispatcher的Invoke方法可发送一个请求,如: 1 using System.Threading; 阅读全文
posted @ 2011-02-18 12:06 Laro 阅读(623) 评论(0) 推荐(1)
摘要:http://wenku.baidu.com/view/fc2086c3d5bbfd0a795673e3.html 阅读全文
posted @ 2011-02-18 09:57 Laro 阅读(235) 评论(0) 推荐(0)
摘要:标题感觉多专业,其实就用很简单的一个应用。 这样一个场景:有时一个单击事件要包含另一个单击事件:[代码] 阅读全文
posted @ 2011-02-17 21:26 Laro 阅读(462) 评论(0) 推荐(1)
摘要:今天研究了下在DataGrid中选中多行数据并删除的实现,用了些笨方法,还请高手指教MainWindowLinq删除操作:[代码] 阅读全文
posted @ 2011-02-17 17:53 Laro 阅读(590) 评论(0) 推荐(0)
摘要:一、值的传递,很简单,因为在同一名称空间下,所以只需在要提供值的窗口里将值声明为public后,就可以在要引用值的窗口里通过“类名.变量名”使用了。如:MainWindow.cs里:[代码]在MyTest.cs里:[代码]二、控件的传递,和值传递类似,但需要更改子窗口的构造函数,在主窗口初始化时传递控件,如,我们现在传一个DataGrid控件,并攻取它选中的值。在MyTest.cs里:[代码]MainWindow.cs里:[代码] 阅读全文
posted @ 2011-02-17 17:37 Laro 阅读(644) 评论(1) 推荐(0)