blend设计基础教程(一)

应群里朋友要求,发个基础教程。由于他是程序员,对blend设计完全没概念,所以发个很基础很基础的教程。

他想实现的效果如下图

WPF的控件是无外形的控件,可以是任何样子,这个效果我们用个combox解决。

1.新建一个项目,然后再页面上添加一个combobox.然后添加两个comboxitem;

2.编辑combobox的模板。

看下combobox里面的模板是什么样子。

MainGrid是为布局控件Grid;PART_Popup为点击按钮后下方弹出的pop窗口,ToggleButton为点击的弹出下拉的按钮,ContentPresenter为承载你选择值的一个控件。

3.看下我们最终实现的样式,弹出的框距离按钮有个边距,你可能想通过设置PART_Popup的margin来控制位置,但是你这样做了是没有效果的,应为PART_Popup的位置是根据ToggleButton改变的。所以我们改变策略,修改pop里面border的边距。同样要修改弹出框的背景色,边框颜色,粗细都是在这里修改dropDownBorder的属性。

4.combox选中一项后,上面会显示值出来,我们解决的办法就是直接删掉ContentPresenter,不用担心,不会有任何报错!

4.弹出下拉的按钮与我们想实现的效果有所不同,所以我们要编辑ToggleButton的模板。

chrome为微软默认的主题布局容器,我们可以直接删掉。我们的combox就不会出现默认的灰色渐变底色了。

5.现在我们可以对按钮的样式进行任意操作,可以放背景图片,改变三角形形状等等

6.回到最初界面改下combobox的宽度就可以实现上面的效果了。

7.修改pop弹出框里面项的样式。选择编辑itemcontainstyle.

ItemTemplate为数据模板,当你的弹出中是图片加文字的时候,你就需要用数据模板去绑定数据。

ItemContainerStyle为样式模板。是你弹出中每项的样式。

ItemsPanel为布局模板,是弹出项中的布局容器。为什么我们看到弹出项中的项是竖直排列的原因就是combobox的ItemsPanel模板默认为StackPanel.

8.我们想设置鼠标移上去的时候背景色为红色,很多人可能是去更改Bd的背景色。当你使用触发器来实现这个功能的时候,可以这样去实现,但是当你使用状态模板时我们就要使用另一种实现方式。

9.将Bd放入Grid中,同时在Grid中添加一个背景色为红色的矩形。

10.将矩形的透明度设为0.(当你希望有动画效果的时候设置Opacity,反之则使用Vislbility)

11。选中状态面板,然后再选中mouseover状态,把你刚才设置的Opacity改为100

这样我们的combobox就实现了。

 

东西很基础,多动手就很容易理解,否则你看了再多也不会记住。

 

最后我们的目标是没有代码!!!!!!

posted @ 2012-11-08 14:01  鱼胖  阅读(44504)  评论(4编辑  收藏  举报