随笔分类 -  C# WinForm/WPF

摘要:在wpf中DataGrid类似于web中的GrilView,用来绑定数据列表的,用法很类似,也可以定义模板,灵活显示,看一下代码 xaml: <DataGrid Name="dgDataSource" IsReadOnly="True" Width="725"> <DataGrid.Resources> <Style TargetType="{x:Type DataGridRow}"> <Setter Property="Height" Value=&q 阅读全文
posted @ 2013-01-15 11:21 双魂人生 阅读(7472) 评论(1) 推荐(1) 编辑
摘要:前面简单的说到了wpf中几种样式的用法,wpf有着类似web中的CSS一样,为界面上的元素定制外观,以提供更好的用户界面,这种灵活性也是winForm所不能及的,从前面讲到的可以知道在WPF应用程序中,通过控件的属性,我们也可以实现更改控件的外观。但是,这种方式局限性大、不灵活且不利于维护,比如一个,二个按钮的样式可以这样,如果有二十,三十个,甚至更多,难道也这样吗,显然这不是很好的选择,如果我们将上述控件的属性归纳起来,写到一段样式中,为按钮指定该样式(甚至用元素类型样式时,都不需要指定按钮样式),所有按钮就具有统一样式和外观了。如果想修改按钮外观,我们只需要改一下样式代码即可,所有按钮.. 阅读全文
posted @ 2013-01-14 23:04 双魂人生 阅读(7179) 评论(0) 推荐(4) 编辑
摘要:我们知道在一个限定高的窗体和容器中,想要把内容显示完是有些问题的,这个时候我们就要使用类似于浏览器的那个滚动条的效果了,在wpf中也同样如此,最近就碰到了这样的问题,也纠结了很长时间,调试滚动效果的时候一直出不来,还好现在调试好了,把代码贴出来 xaml: <StackPanel> <ScrollViewer Name="scroll" Margin="0,50" Width="720" Height="200" HorizontalScrollBarVisibility="Auto&q 阅读全文
posted @ 2013-01-14 14:29 双魂人生 阅读(33456) 评论(0) 推荐(1) 编辑
摘要:在我看来,学习WPF,最重要的还是学习它的布局,样式的使用,类似于web页面布局的优点是winForm所不能及的,可以通过它灵活的布局,样式的添加,从而制作出很多很炫的界面,下面就简单的总结下关于WPF中样式的几种用法: 我们以按钮Button为例,比如改变它的背景颜色或者添加图片背景,在这里需要说明的是,不是每一种样式都能实现同样的效果 方法一:直接在button里使用Background赋值即可,这个是最简单的,但是有些样式会实现不了,一些简单的还是可以的 <Button Content="Button" Height="23" Backgro 阅读全文
posted @ 2013-01-12 20:37 双魂人生 阅读(19212) 评论(3) 推荐(6) 编辑
摘要:有些窗体为了美观,会把头部的那部分去掉,换成其他的样式,如下 那么怎么去掉呢,很简单,只要设置一个属性即可 WindowStyle="None" 还要可以拖动,这个时候触发一个事件MouseLeftButtonDown即可MouseLeftButtonDown="Window_MouseLeftButtonDown"private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove(); } 这样就可以了 阅读全文
posted @ 2013-01-11 17:36 双魂人生 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:在使用WPF进行应用程序的开发时,经常会为DataGrid生成行号,这里主要介绍一下生成行号的方法。通常有三种方法,这里主要介绍其中的两种,另一种简单提一下。1. 直接在LoadingRow事件中操作。这种方式是在code behind文件中操作。即相应的*.xaml.cs文件。代码如下:this.dataGridSoftware.LoadingRow+=newEventHandler<DataGridRowEventArgs>(this.DataGridSoftware_LoadingRow);//...privatevoidDataGridSoftware_LoadingRow 阅读全文
posted @ 2013-01-10 19:28 双魂人生 阅读(884) 评论(0) 推荐(0) 编辑
摘要:我们来新建一个用户控件UserControl1.xaml<UserControl x:Class="WpfApplicationDemo.Control.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup 阅读全文
posted @ 2013-01-09 20:03 双魂人生 阅读(29187) 评论(3) 推荐(3) 编辑
摘要:空样式按钮<Stylex:Key="EmptyButtonStyle"TargetType="Button"><SetterProperty="Padding"Value="0"/><SetterProperty="FocusVisualStyle"Value="{x:Null}"/><SetterProperty="Template"><Setter.Value><ControlTempl 阅读全文
posted @ 2013-01-09 19:35 双魂人生 阅读(4501) 评论(0) 推荐(2) 编辑
该文被密码保护。
posted @ 2013-01-09 19:32 双魂人生 阅读(2) 评论(0) 推荐(0) 编辑
摘要:最近在开发一个wpf方面的项目,本来一直都好好的,编译也没什么问题,今天编译的的时候突然报了很多错误,很无语,也不知道哪里出的问题,问题如下 后来经过排查,发现有可能是类库Newtonsoft.Json出现了问题,这个项目是.net和java一起完成的项目,所以需要写webService服务,相同的东西不需要重新写了,在些java服务的时候用到了Json,后来把这个类库删掉,然后再重新引用就可以了,还不清楚到底是哪里出的问题,无语啊 阅读全文
posted @ 2013-01-09 10:08 双魂人生 阅读(154) 评论(0) 推荐(0) 编辑
摘要:问题环境:WPF发布程序,使用反射需要找到dll文件的路径asp.net和WPF获取应用程序路径stringstr6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。 stringstr7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。 1.System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。 2. Syst... 阅读全文
posted @ 2013-01-07 09:29 双魂人生 阅读(2863) 评论(0) 推荐(0) 编辑
摘要:TextBox在wpf中可以手动来改变它的大小,当做文本域来使用,可是有的时候却不能自动换行,很是苦恼, 解决办法:<TextBox Name="tbMultiLine" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Canvas.Left="77" Canvas.Top="282" Height="86" Width="411& 阅读全文
posted @ 2013-01-06 18:42 双魂人生 阅读(1664) 评论(0) 推荐(0) 编辑
摘要:举个例子,比如在邮件系统中,我们在设计数据库的时候,用0代表邮件未读,1代表已读,这个时候我们希望未读的时候用没有打开邮件的图片显示,而已经读的邮件用打开的邮件图片显示出来,这个在web和winform中很好实现,但是在wpf中我们需要借助转换器来实现。 所谓的转换器就是通过一个条件或者一个类型,转换成另外一种结果或者类型,主要实现了IValueConverter接口,下面把刚才的例子简单的用代码写一下 首先我们来定义一个转换器 //定义值转换器 [ValueConversion(typeof(int), typeof(String))] public class Date... 阅读全文
posted @ 2013-01-06 18:30 双魂人生 阅读(12859) 评论(4) 推荐(0) 编辑
摘要:一、Panel内容模型Panel内容模型指从System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部承载其他的控件和子容器。Panel内容模型包含的容器有: Canvas DockPanel Grid TabPanel ToolBarOverflowPanel UniformGrid StackPanel ToolBarPanel VirtualizingPanel VirtualizingStackPanel WrapPanel对于Panel模型,其包含一个Children属性,表示其所有的子控件和子容器的集合,在XAML代码中可以省略<XXX 阅读全文
posted @ 2012-12-04 14:59 双魂人生 阅读(291) 评论(0) 推荐(0) 编辑
摘要:WPF控件内容模型主要指派生于System.Windows.Controls.Control类的各种控件,其主要分为四部分: ContentControl HeaderedContendControl ItemsControl HeaderedItemsControl一、ContentControl ContentControl模型的类型具有一个 Content 属性。Content 属性的类型为 Object,因此,对于您在 ContentControl 中可以放置的内容没有任何限制。可以使用可扩展应用程序标记语言 (XAML) 或代码来设置 Content。 以下控件使用 Conte... 阅读全文
posted @ 2012-12-04 11:22 双魂人生 阅读(1808) 评论(0) 推荐(1) 编辑
摘要:1、Alt+*(按钮快捷键) 按钮快捷键也为最常用快捷键,其设置也故为简单。在大家给button、label、menuStrip等其他控件的Text属性指定名称时,在其后面加上‘&’然后在加上一个指定字母即可。如:确定(&D),(Alt+D)调用。如指定多个字母,则第一个为快捷键。如:确定(&OK),(Alt+O)调用;文件(&Fill),(Alt+F)调用。2、Ctrl+*及其他组合键 把 Form 的 KeyPreview 属性设为 True 使用Modifiers可设置组合键,键盘数字区按键的Keys枚举以D打头,而小键盘上的数字以NumPad打头。按下C 阅读全文
posted @ 2012-12-01 14:54 双魂人生 阅读(14314) 评论(0) 推荐(6) 编辑
摘要:在winForm中,我们一般会有这样的需求,选择本机的一个图片或者其他文件进去读取或者其他的操作,也可能回选择某一个文件夹下面的所有图片来操作,winForm中为我们提供了两个控件FolderBrowserDialog和OpenFileDialogFolderBrowserDialog:用来选择一个文件夹,从而读取这个文件夹下面的所有文件OpenFileDialog:用来读取单个文件下面来看看他们具体的用法首先对于这两个控件我们可以从工具箱里托一个过来,也可以直接用代码创建先看看FolderBrowserDialog的用法,我们拖一个控件到窗体中,然后实现选择,并将路径返回到文本框中View. 阅读全文
posted @ 2012-12-01 14:45 双魂人生 阅读(20695) 评论(0) 推荐(1) 编辑
摘要:最近弄了一个项目,需要读取本机的pdf文件并转换成图片放置到另外一个文件夹下,现在把代码分享下: 一、看看如何读取本机的pdf文件到窗体中 首先,我们下载一个pdf阅读AdbeRdr器到电脑上,最好是安装完整版的,要不然vs获得到组件 其次,我们就可以在工具箱中获取Adobe提供的Active控件了 然后我们就可以拖动一个控件放到窗体中了,然后会生成两个文件 然后我们就可以通过代码来读取pdf文件,下面这个例子选择pdf文件夹,然后读取多个pdf文件通过按钮完成切换pdf文件和翻页 #region选择pdf文件目录privatevoidbtnBrowse_Click(objectsen... 阅读全文
posted @ 2012-12-01 14:23 双魂人生 阅读(6832) 评论(7) 推荐(0) 编辑
摘要:wpf绑定TreeView,貌似比winForm可能要麻烦一些,不过仔细分析一下,还是很好解决的,最近做了一个项目,正好写了一下,下面把代码贴出来和大家分享一下先看一个简单的绑定View Code //代码绑定TreeView2 private void BindTreeView2() { TreeViewItem item1 = new TreeViewItem() { Header = "节点一" }; TreeViewItem item11 = new TreeViewItem() { Header = "节点1... 阅读全文
posted @ 2012-11-29 11:39 双魂人生 阅读(31153) 评论(2) 推荐(4) 编辑
摘要:在类别显示的时候,我们往往会选择树状的形式展现出来,这个很常见,我们来看看在winForm中如何绑定在winForm的控件中,已经为我们提供了一个树状展示的控件TreeView,这个用起来很方便,只要记住几点就可以很好完成数据的绑定首先,TreeView的节点是TreeNode,每一个节点都是一个TreeNode对象其次、完成对每个TreeNode对象的属性绑定然后、可以通过TreeNode的Nodes.add(treeNode)添加子节点最后、将节点绑定到TreeVIew上 如:treeView1.Nodes.Add(treeNode);看看下面的例子就一目了然了View Code pub. 阅读全文
posted @ 2012-11-28 20:51 双魂人生 阅读(5705) 评论(0) 推荐(0) 编辑