使用Blend的一些问题和技巧
WPF开发,界面处理首选Blend,如果你开发了两年WPF都没接触过blend(当然这种几率不高),或者你刚接触WPF,可以考虑使用Blend,这货也算得上一个神器,上手也不难。以下有两位讲得不错,大家可以翻翻。
然而在使用的过程中也遇到一些问题、发现了一些技巧,这里整理了下。
1.Blend里窗体宽高设为1024*768含义
= 窗口的两条边框+内容 = 窗口标题栏+窗口底边框+系统任务栏
而且,在win7里最大化窗口时会隐藏窗口左右两边和底边的
2.Margin 某个控件的周围与它的直接父容器的间距,布局里经常用到
3.同样的一个文本控件,字号在VS2010里默认是12号,而在Blend4里却是9号
4.用户控件添加到其他界面后有黄色叹号和虚框
5.鼠标移到Grid边框上时不可以选中整行或者整列
6.Blend4嵌入字体后每次运行程序都会在C盘里生成大量文件占用空间
7.blend打开项目、xaml文件一直未响应、打开出错
//在WPF中
using System.ComponentModel; if (!DesignerProperties.GetIsInDesignMode(this)) {
//...
} //在WinForm开发中,一般会在窗体或者UserControl中判断当前是否为设计状态,如:
if (!this.DesignMode)
{
//
}
这个方法可以起作用。不过有些东西是写在ViewModel里的,不涉及UI的,这样写会破坏结构。
8.怎样画一条闭合的路径
- 键盘按P切换到路径选中状态,然后先选中起始点点,按住Shift键不放,鼠标移到另外一个需要连接的点上,等鼠标变成一个圆圈就可以点下去连接上了。
- 如果是两条不相干的路径,则要先把两条路径同时选中,再进行上面的操作。或者也可以选把两条路径生成一条复合路径再操作。
9.如何画正圆、同心圆
10.Blend的路径相减是什么意思
11.Blend的触发器层
如果你的触发器里是这样的顺序

那么控件会先触发MouseOver效果,然后按下的时候,会保持Over的效果,累加按下的效果,如果IsPressed在下面,那么按下的时候不会累加效果,会恢复到原样再执行按下效果。可见,Blend的触发器层是按照现实顺序来的,先触发over,那么就先创建over属性,再创建pressed属性。
12.如何让Grid某列Collapsed时自动释放空间
使用Grid分为两列,注意:让要自动释放空间的那列权值为0,另一列为1,然后再把为0的那列改成Auto模式,这样当这列里的内容Collapsed时就会释放空间,而另一列自然就填满了。
13.如何快速布局
方法一:可以选中要布局的对象右键→分组,选一个容器就会直接把选中的对象放到对应的容器里。有时候图省事两个布局差不多的界面会直接复制粘贴,这个时候要注意,在Blend里:
用分组的话内容不会出现-margin
用剪切粘贴的话可能会出现-margin
14.Blend4里没有ContextMenu,即右键快捷菜单,所以没法在Blend里编辑ContextMenu的样式
15.尽量不要使用模糊效果,这东西会让程序卡得抓狂
16.巧妙使用“重置”
主要用在设置Margin的时候,Margin有4个值,一个一个设施相当麻烦的,重置一下,全部置为0,相当方便。
重置前,点白色的方块即可重置

重置后

有木有一键还原的错觉。有的地方使用重置也可以省去不少麻烦,只要你善于发现。
17.如何快速拖动界面
你还在用滚动条拖界面吗,其实只需要按住空格键,鼠标变成一只小白手之后就可以随便你拖了。
18.如何快速复制一个控件到旁边
如果你觉得Ctrl+C然后Ctrl+V已经很快了,我再告诉你一个更快的方法:按住Alt直接拖动要复制的控件到合适的位置,松开键盘和鼠标,就能很快的复制一个控件了。
使用Blend的一些问题和技巧的更多相关文章
- Silverlight & Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化、波感特效
当我们在进行Silverlight & Blend进行动画设计的过程中,可能需要设计出很多效果不一的图形图像出来作为动画的基本组成元素.然而在设计过程中可能会出现许多的问题,比如当前绘制了一个 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第十章 FluidMoveBehavior完全解析之三飞出ListBox吧
原文:[全面解禁!真正的Expression Blend实战开发技巧]第十章 FluidMoveBehavior完全解析之三飞出ListBox吧 刚才有人说我的标题很给力,哈哈.那这个标题肯定更给力了 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel)
原文:[全面解禁!真正的Expression Blend实战开发技巧]十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel) 写这篇文 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条
原文:[全面解禁!真正的Expression Blend实战开发技巧]第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条 这一章讲解FluidMoveBehavior的另一个应用, ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮
原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第八章 FluidMoveBehavior完全解析之一漂浮移动
原文:[全面解禁!真正的Expression Blend实战开发技巧]第八章 FluidMoveBehavior完全解析之一漂浮移动 好久没更新博客了,今天如果没急事,准备连发三篇,完全讲解Blend ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第四章 从最常用ButtonStyle开始 - PathButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第四章 从最常用ButtonStyle开始 - PathButton 上一篇我们介绍了TextButton,但为了追求界面的张力, ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第五章 从最常用ButtonStyle开始 - ImageButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第五章 从最常用ButtonStyle开始 - ImageButton 本章围绕ImageButton深入讨论,为什么是Image ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第二章 你好,UI设计师
原文:[全面解禁!真正的Expression Blend实战开发技巧]第二章 你好,UI设计师 你好,UI设计师 曾几何时我从没想过要与艺术家打交道,但是Silverlight改变了这一切.UI设计师 ...
随机推荐
- ngnix集群产生的问题
还可使用zookeper解决
- H5gulp版非前后的分离环境
由于公司不同意我们使用前后端分离进行开发,硬是要我们和PHP混合在一起,所以用gulp搭建了一个简单的手脚架来用 目录结构: 主要是gulpfile.js里的内容 var gulp = require ...
- plsql连接远程数据库快捷方式
不用修改任何文件就可以直接连接远程数据库
- springboot项目实现批量新增功能
这个困扰我一整天东西,终于解决了. 首先是mybatis中的批量新增sql语句. 注意:这里我给的是我需要新增的字段,你们改成你们需要的字段. <insert id="insertBa ...
- spring boot Filter过滤器的简单使用
springboot使用Filter过滤器有两种方式: 一种是实现Filter接口然后通过@Component注解向项目加入过滤器 另一种是通过配置类来配置过滤器 @Component public ...
- 解决Chrome浏览器自动记录用户名和密码的黄色背景问题和该解决方法与tab切换至下一个input冲突的问题。
哈哈哈,是不是标题很长呀,不逗你们了.其实这么长的标题主要就说了两件事: 第一件:解决Chrome浏览器自动记录用户名和密码的黄色背景问题. 第二件:输入完用户名后按下tab键切换至下一个输入密码in ...
- bootstrap fileinput 上传文件
最近用到文件上传功能, 说实话:以前遇到过一次,COPY了别人的代码 结束! 这次又要用,可是看到别人很酷的文件上传功能,心痒了! 好吧.简单的办法,找控件: bootstrap fileinput ...
- MapReduce的过程(2)
MapReduce的编程思想(1) MapReduce的过程(2) 1. MapReduce从输入到输出 一个MapReduce的作业经过了input.map.combine.reduce.outpu ...
- node执行cmd命令方法
var cmd='tasklist';//获取 子进程模块的exec方法,用于执行cmd命令var exec = require('child_process').exec; //运行 定义的cmd命 ...
- div高度不能自适应(子级使用float浮动,父级div高度不能自适应)
1.问题截图: 2.问题描述: 由于地址.公司名长度的不定性,所以每一条地址所在的父级div高度不定,但是需要设置一个最小的高度min-height:48px;但是当内容增加的时候,父级div高度却不 ...