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 属性
就不会 固定的尺寸