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的一些总结的更多相关文章

  1. 在WPF中使用依赖注入的方式创建视图

    在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...

  2. MVVM框架从WPF移植到UWP遇到的问题和解决方法

    MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...

  3. MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息

    MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...

  4. MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信

    MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...

  5. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  6. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  7. MVVM模式和在WPF中的实现(二)数据绑定

    MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  8. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  9. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  10. WPF 微信 MVVM

    公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...

随机推荐

  1. java基础(System.err和System.out)

    今天有位同事在使用System.err和System.out遇上了一些小问题. 看了些资料总结下: 1.JDK文档对两者的解释: out: "标准"输出流.此流已打开并准备接受输出 ...

  2. Docker Daemon 参数最佳实践

    1. Docker Daemon 配置参数 限制容器之间网络通信 在同一台主机上若不限制容器之间通信,容器之间就会暴露些隐私的信息,所以推荐关闭 docker daemon –icc=false 使用 ...

  3. react native-调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错

    调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错,而在iOS上运行没问题.原因是因为接口是有验证信息的,而调用这个插件时没有传入,在iOS上会自动加 ...

  4. spring boot + mybatis + druid

    因为在用到spring boot + mybatis的项目时候,经常发生访问接口卡,服务器项目用了几天就很卡的甚至不能访问的情况,而我们的项目和数据库都是好了,考虑到可能时数据库连接的问题,所以我打算 ...

  5. kali系统破解WPA密码实战

    上次发布过一篇在OSX系统破解WIFI密码的教程, 这次发布一篇使用kali破解wifi的教程 WEP和WPA/PSK的区别 WPA/PSK的加密方式相对于WEP的加密方式更加安全,WEP是一种老式的 ...

  6. 通过 itms:services://? 在线安装ipa ,跨过app-store

    1.需要一个html文件,引导下载用户在线安装ipa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&quo ...

  7. salesforce零基础学习(七十四)apex:actionRegion以及apex:actionSupport浅谈

    我们在开发中,很难会遇见不提交表单的情况.常用的apex:commandButton,apex:commandLink,apex:actionFunction,apex:actionSupport.他 ...

  8. JSON总结-持续更新补充

    基本的json格式 { "name": "jobs", "boolean": true, "age": null, &q ...

  9. 获取Java VM中当前运行的所有线程

    /** * 获取Java VM中当前运行的所有线程 * @return */ public static Thread[] findAllThreads() { ThreadGroup group = ...

  10. Linux文件属性上

    文件属性概述(ls -lhi) linux里一切皆文件Linux系统中的文件或目录的属性主要包括:索引节点(inode),文件类型,权限属性,链接数,所归属的用户和用户组,最近修改时间等内容: 解释: ...