wpf的一些总结
wpf技巧
隐藏控件不占空间,设置visibility为:Collapsed
tabcontrol的高度宽度跟随界面的大小变化:属性height\width绑定grid的actualheight\actualwidth,xaml代码Width="{Binding ActualWidth, ElementName=grid}" Height="{Binding ActualHeight, ElementName=grid}"
控制控件所在的StackPanel,就能控制多个控件的属性。如设置StackPanel的isEnable为false,那么此StackPanel下的控件的isEnable都未false
xaml和后台映入命名空间的方式不同,比如引入拥有 Triggers 和 Behaviors 附加属性的静态类——Interaction类 。 后台命名空间引入:using System.Windows.Interactivity
xaml引入:xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity
datagrid列重复,将AutoGenerateColumns设为false即可
操作excel。添加office、excel dll,项目右键引用、com里搜索,读取导出excel所需命名空间:引用com using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
读取dataset DataSet.Tables[0].Rows[0]["username"].ToString()
Popup显示位置的设置 IsOpen StaysOPen Placement="Mouse"(在鼠标点击处打开)
获取datagrid所在行id:DataRowView ds = myDataGrid.SelectedItem as DataRowView;
MessageBox.Show(ds.Row[0].ToString());
修改datagrid一行即引发的事件为RowEditEnding
转义字符串,加个@号
string str=@"df
sadf
sdf";
设置全局样式:
在app.xaml的resourcedictionary节点里加上
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourceDic/MainResourceDictionary.xaml"/>
<ResourceDictionary Source="Themes/Style.xaml"/>
</ResourceDictionary.MergedDictionaries>
在style.xaml里定义样式,比如<Style x:Key="s1" TargetType="TextBox">
<Setter Property="Background" Value="#FFEAEAEA"></Setter>
</Style>
TextBox引用Style="{StaticResource s1}"即可
将button抽出来放在单独的文件,可以在blend里选中button,右键剪辑样式-编辑副本
WCF
默认情况下,BasicHttpBinding发送的是明文数据,而WsHttpBinding发送的是加密和更加安全的数据。
契约相当于公司与客户之间签订的合同
DataContract需要引用命名空间system.Runtime.Serialization并using到cs文件中
Reference.cs出错,很多处错误,发现是引用没更新的原因
服务端定义客户端的各种东西,比如绑定、终结点、服务、行为等
有趣的单向双向通讯,在operationcontract操作契约中的isOneWay是true或否中决定
WCF服务,先是定义服务协定,而服务协定中会有若干个服务操作协定(OperationContract),是这样吧?而所谓的操作协定,就是一个方法。
协定有数据协定DataContract,服务协定ServiceContract,信息协定MessageContract
静态对象会导致new窗体时发生xamlparseexception错误
调试器无法继续运行该进程。无法启动调试 卸载部署项目并重新加载项目即可
打包文件会出现的错误
右击setup项目,点击install出现错误:
错误-1014: Cannot rename directory E:\开发项目\MyWPFProject\Setup1\Setup1\Express\SingleImage to E:\开发项目\MyWPFProject\Setup1\Setup1\Express\SingleImage.Bak.
Windows Explorer or a DOS prompt may be pointing to a subfolder of the release output folder (Disk1) or to the Interm folder, locking it. Change the current directory. Close any open files in the Disk1 folder. Close Msidb.exe if it is open.
删除SingleImage文件夹即可
调试setup打包项目,出现“调试器无法继续运行该进程。无法启动调试“错误,右键卸载打包项目再重新加载即可
样式
button圆角:<Button x:Name="queryTB" Margin="0,0,6,0" Content="{DynamicResource query}" BorderBrush="#FFB0BED2" BorderThickness="0.5,1,0.5,0.3" Foreground="#FF294364" >
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="3,3,3,3">
<Border.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFDFEBF9" Offset="0"/>
<GradientStop Color="#FFD2E0EF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
command传递控件本身
<TextBox x:Name="usernameTB" Grid.Row="0" Grid.Column="1" MinWidth="133" MaxWidth="228" BorderBrush="#FF8BA0BC" LostFocus="usernameTB_LostFocus" TextChanged="usernameTB_TextChanged" Style="{DynamicResource TextBoxStyleOne}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="GotFocus">
<i:InvokeCommandAction Command="{Binding GotfocusCommand}" CommandParameter="{Binding ElementName=usernameTB}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
ViewModel
if (textbox.GetType().ToString() == "System.Windows.Controls.TextBox")
{
TextBox tb = textbox as TextBox;
if (tb != null)
{
// System.Windows.MessageBox.Show("111"+tb.Name);
tb.Style = tb.TryFindResource("s1") as Style;
}
}
wpf的一些总结的更多相关文章
- 在WPF中使用依赖注入的方式创建视图
在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息
MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...
- MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信
MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式和在WPF中的实现(二)数据绑定
MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- WPF 微信 MVVM
公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...
随机推荐
- [0] Visual studio 2010 快捷键大全
[窗口快捷键]Ctrl+W,W: 浏览器窗口 Ctrl+W,S: 解决方案管理器 Ctrl+W,C: 类视图 Ctrl+W,E: 错误列表 Ctrl+W,O: 输出视图 trl+W,P: 属性窗口 C ...
- EF编辑
//修改推荐的信息 var productRe = db.Shop_ProductRecommends.Single(item => item.Id == model.Id); productR ...
- VR虚拟现实技术在教育领域的前景展望
VR虚拟现实技术在教育领域的前景展望 VR虚拟现实技术能迅速火起来,是基于它突破了人们对三维空间在时间与地域上的感知限制,以及市场需求愿景的升级.此技术可广泛地应用到城市规划.室内设计.工业仿真.古迹 ...
- python可视化--matplotlib
matplotlib在python中一般会与numpy同时出现,解决一些科学计算和数据的可视化问题. matplotlib其实就是matlib在python中的实现,因此不会有太大的难度,而由于pyt ...
- Tomcat7的热部署
所谓热部署就是在tomcat不停机的情况下,将新的war包放上去,达到服务不中断,用户无察觉的目的,实现的原理很简单,这里做下记录,以便后期查看. 1.1 安装tomcat7 略 1.2 在tomca ...
- VMWare、KVM、Virtualbox克隆或复制Linux虚拟机后eth0找不到的解决方案
快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...
- tomcat7以上,ajax post参数后台获取不到的问题
AJAX post传参后台获取不到查询参数. 网上找了各种方法,包括设置content-type,又是把json转成json格式字符串,问题依然存在,但是把post改成get又可以获取到,百思不得其解 ...
- PHP接入阿里云市场 阿里短信服务DEMO
阿里短信服务:支持三大运营商短信.智能管道等优质能力,产品特点:3秒可达.99%到达率.超低资费. 使用阿里短信服务步骤: 1.购买服务 到https://market.aliyun.com/prod ...
- Android精品源码与技术博文
Android精品源码android遵循Material Design风格天气源码基于exoplay 自定义播放器 支持直播 1 ExoUserPlayer 基本播放器...几种动画效果Animati ...
- TCP长连接与短连接的原理及区别
一.当网络通信时采用TCP协议时: 1.过程: 第一步:(在真正的读写操作之前)Server 和Client 之间必须建立一个连接,连接的建立需要三次握手 经典的三次握手示意图: 第二步:进行读写操 ...