WPF学习小记

时间:2022-02-15 15:33:40

WPF通用控制事件

Click:当控件被单击时发生。某些情况下,当用户按下Enter键时也会发生这样的事件。

Drop:当拖曳操作完成时发生,也就是说,当用户将某个对象拖曳dao该控件上,然后松开鼠标时发生

DragEnter:当某个对象被拖曳进入该控件的边缘范围内时发生

DragLeave:当某个对象呗拖曳出该控件的边缘范围外时发生

DragOver:当某个对象呗拖曳到控件上时发生

KeyDown:当该控件具有焦点,并且某个按键被按下时发生。该事件总在KeyPress和KeyUp事件之前发生

KeyUp:当该控件具有焦点,并且某个按键被释放时发生。该事件总在KeyDowm事件后发生

GotFocus:当该控件失去焦点时发生。请勿使用该控件对控件执行验证操作。应该改用Validating和Validated

MouseDoubleClick:当双击该控件时发生

MouseDown:当鼠标指针经过某个控件,鼠标按钮被按下时发生。该事件与Click事件并不相同,因为MouseDown事件在按钮被按下后,在其释放前发生

MouseMove:当鼠标经过控件时持续发生

MouseUp:当鼠标指针经过控件,而鼠标按钮又被释放时发生

Pancel布局控件

Canvas——该控件允许以任何合适的方式放置子控件。它不会对子控件的位置施加任何限制,但不会对位置摆放提供任何辅助。

DockPanel——该控件可以让其中的子控件贴靠到自己四条边中的任意一边。最后一个子控件则可以充满剩余区域。

Grid——该控件让子控件的定位变得比较灵活。可将该控件的布局分为若干行和若干列,这样就可以在网络布局中对齐控件。

StackPanel——该控件能够按照水平方向或者垂直方向依次对子控件进行排列。

WrapPanel——与StackPanel一样,该控件也能够按照水平方向或垂直方向依次对子控件进行排列,但它不是按照一行或一列来排序,而是根据可用空间大小以多行多列的方式排列。

Canvas:

 <Canvas Background="AliceBlue">
<Rectangle Canvas.Left="50" Canvas.Top="50" Height="40" Width="100"
Stroke="Black" Fill="Chocolate"/>
<Rectangle Canvas.Left="198" Canvas.Top="121" Height="40" Width="100"
Stroke="Black" Fill="Bisque"/>
</Canvas>

DockPanel:

<DockPanel Background="AliceBlue">
<Border DockPanel.Dock="Top" Padding="10" Margin="5"
Background="Aquamarine" Height="45">
<Label>1) DockPanel.Dock="Top"
</Label>
</Border>
<Border DockPanel.Dock="Top" Padding="10" Margin="5"
Background="PaleGoldenrod" Height="45" Width="200">
<Label>2) DockPanel.Dock="Top"
</Label>
</Border>
<Border DockPanel.Dock="Left" Padding="10" Margin="5"
Background="Yellow" Width="200" HorizontalAlignment="Right">
<Label>3) DockPanel.Dock="Left"
</Label>
</Border>
<Border DockPanel.Dock="Bottom" Padding="10" Margin="5"
Background="Bisque" Width="200" HorizontalAlignment="Right">
<Label>4) DockPanel.Dock="Right"
</Label>
</Border>
<Border Padding="10" Margin="5" Background="BlueViolet">
<Label Foreground="White">5) Last control
</Label>
</Border>
</DockPanel>

StackPanel:

 <StackPanel HorizontalAlignment="Left" Height="128" VerticalAlignment="Top" Width="284"
Orientation="Horizontal">
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
</StackPanel>
<StackPanel HorizontalAlignment="Left" Height="128" VerticalAlignment="Top"
Width="284" Margin="0,128,0,0" Orientation="Vertical">
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
</StackPanel>

WrapPanel:

<WrapPanel Background="AliceBlue">
<Rectangle Fill="#FF000000" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10"/>
<Rectangle Fill="#FF111111" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10"/>
<Rectangle Fill="#FF222222" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10"/>
<Rectangle Fill="#FFFFFFFF" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10"/>
</WrapPanel>

注:摘抄自《c#入门经典》