Microsoft Expression Blend 3:

 

一些常见的布局控件

·              Canvas 最原始的容器控件,对子控件无自动布局功能。

·              StackPanel 能将子元素排列成一行(可沿水平或者垂直方向)

·              WarpPanel 元素从左到右按顺序排列,在包含他们的框的边缘处将内容换至下一行。

·              Grid 定义由行和列的灵活网格区域。

·              ViewBox 可拉伸或者缩放子元素。

·              Border 在一个子元素的周围绘制边框、背景。

·              DockPanel 可将子元素沿其边缘进行定位。

·              ScrollViewer 使内容显示在比其实际大小小的区域中,并适当显示滚动条。

< Image  Source ="images/1.png"  x:Name ="img"> 
               < Image.Projection > 
                   < PlaneProjection  x:Name ="myimagePlanProjection"></ PlaneProjection > 
               </ Image.Projection > 
           </ Image > private   void  LayoutRoot_MouseMove( object  sender, MouseEventArgs e) 
          { 
              myimagePlanProjection.RotationX = e.GetPosition( null ).X; 
              myimagePlanProjection.RotationY = e.GetPosition( null ).Y; 
              myimagePlanProjection.RotationY = e.GetPosition( null ).X - e.GetPosition( null ).Y; 
          }

就这样一个简单的图片3D透视效果完成了。

myimagePlanProjection.RotationX  设置X轴的值

myimagePlanProjection.RotationY  设置Y轴的值

myimagePlanProjection.RotationY  设置Z轴的值

 

操作技巧:

右键         自动调整大小         填充

右键         编辑模板         编辑副本(创建空项)

右键         构成 usecontrols                 (用户控件)                 要使用用户控件必须先要生成一下项目

 

 

F6          调整工作区

F4  隐藏面板

 

//添加阴影效果 
< Button.Effect > 
         < DropShadowEffect  BlurRadius ="4"  Opacity ="0.7"  RenderingBias ="Quality"  ShadowDepth ="3"></ DropShadowEffect > 
</ Button.Effect >

 

//ImageBrush    以图像作为前景 
< TextBlock  Height ="21"  Margin ="64.141,0,94.129,69.972"  Name ="textBlock1"  VerticalAlignment ="Bottom"  Text ="3213213213213212" > 
              < TextBlock.Foreground > 
                  < ImageBrush  ImageSource ="http_imgload.jpg"></ ImageBrush > 
              </ TextBlock.Foreground > 
</ TextBlock >

 

 

内容控件:

内容控件只允许包含单一项(iterm)的简单控件

内容控件都是继承自System.Windows. Controls . ContentControl

它们拥有只含有一项的Object类型的COntent属性

 

WPF 自带的 内容控件 有 3 大 种类 :

按钮  

常见 BUTTONBASE 类控件: BUTTON  RepeatButton

ToggleButton  IsThreeState="True"                

checkbox 

radiobutton         GroupName="123"分组 DEMO   stackPanel

 

简单容器        

Label                

Tooltip         DEMO   DEMO2

Frame        

 

HEADER的容器

groupbox         header  DEMO   DEMO2

expander         DEMO    ExpandDirection="Right"

 

ITEMs控件:

包含了一个拥有许多Item的集合而不是只有一条内容

继承自 ItemsControl 抽象类

 

四种 常见的 Selector 控件:

ComboBox         DEMO

ListBox                 DMEO   DMEO2

ListView                

TabControl        

 

菜单:

Menu         DEMO

ContextMenu                 右键菜单 DEMO

 

其他控件:

TreeView         DEMO

ToolBar                 DMEO

StatusBar         DEMO

 

RANGE控件:

Progressbar                 DEMO

slide                        

文本和墨水控件:

textbox                        

richtextbox                

passwordbox                

inkcanvas                 画笔

 

 

SoundPlayer         只能播放.wav文件  在WPF中使用SoundPlayerAction进行包装

MediaElement         媒体                 DEMO

MediaPlayer没有界面

 

 

 

WPF事件的三种类型:

Direct Event                 只能被产生事件的控件发起(Raise)。比如MouseLeave

Bubbling Event         依次被外层控件发起 比如:MouseDown

Tunneling Event         与Bubbling 相反。最外层的控件先发起,依次向内,最后才是真正                                         产生事件的控件。比如previewMouseDown。可用于实现过滤某些事                                         件

 

使用RoutedEventArgs                 DEMO 捕获事件 冒泡事件 Bubbling Event

 

 

使用命令:

ApplicationCommands(应用程序命令)

DEMO

WPF 中的命令是通过实现 ICommand 接口来创建的。ICommand 公开两个方法(Execute 和 CanExecute)和一个事件 (CanExecuteChanged)。

 

WPF已封装的命令类有:

  命令类

  示例命令

  ApplicationCommands

  Close、Cut、Copy、Paste、Save、Print

  NavigationCommands

  BrowseForward、BrowseBack、Zoom、Search

  EditingCommands

  AlignXXX、MoveXXX、SelectXXX

  MediaCommands

  Play、Pause、NextTrack、IncreaseVolume、Record、Stop

  ComponentCommands

  MoveXXX、SelectXXX、ScrollXXX、ExtendSelectionXXX

 

 

ButtonBase等直接使用控件的Command属性绑定命令:

  1: <Button Command="ApplicationCommands.Copy" />

  而InputBinding使用KeyBinding或MouseBinding绑定特定的输入手势到某一命令上:

  例如在Window上注册Ctrl+F2快捷键到ApplicationCommands.Open上:

  1: <KeyBinding Command="ApplicationCommands.Open"
  2:       Key="F2" Modifiers="Control" />

 

 

WPF使用style:           DEMO

 

数据的双向绑定

 

向应用程序中添加自定义字体  在"项目"面板中右键单击相应的项目名称,然后单击"添加现有项"。

使用字体管理器嵌入字体   从"工具"菜单中打开字体管理器

插入音频和视频          "MediaElement"控件

右键  转为控件  才可能设置各种状态

 

只要去除根控件上的 Width 和 Height 属性

就不会 固定的尺寸