WPF Thumb
Thumb 类,表示可由用户拖动的控件。其主要三个事件分别DragDelta,DragStarted,DragCompleted。
DragDelta —— 当 Thumb 控件具有逻辑焦点和鼠标捕获时,随着鼠标位置更改发生一次或多次。
DragStarted —— 在 Thumb 控件接收逻辑焦点和鼠标捕获时发生。
DragCompleted —— 在 Thumb 控件失去鼠标捕获时发生。
示例:
XML:
<Grid>
<Canvas Panel.ZIndex="2" Height="650" Width="1200">
<Thumb x:Name="thumbGift" DragDelta="Thumb_DragDelta" BorderBrush="{StaticResource BorderDashedBrushStyle}" BorderThickness="0" DragStarted="Thumb_DragStarted" DragCompleted="Thumb_DragCompleted">
<Thumb.Template>
<ControlTemplate>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Image Stretch="Fill" MaxHeight="650" gif:ImageBehavior.AnimatedSource="pack://application:,,,/Images/gif/xs.gif" />
</Border>
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Canvas>
</Grid>
Thumb事件:
private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
UIElement thumb = e.Source as UIElement;
Canvas.SetLeft(thumb, Canvas.GetLeft(thumb) + e.HorizontalChange);
Canvas.SetTop(thumb, Canvas.GetTop(thumb) + e.VerticalChange);
}
private void Thumb_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
{
thumbGift.BorderThickness = new Thickness(1);
}
private void Thumb_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
thumbGift.BorderThickness = new Thickness(0);
}
Border虚线:
<DrawingBrush x:Key="BorderDashedBrushStyle" Viewport="0,0,8,8" ViewportUnits="Absolute" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="#ccc">
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="0,0,50,50" />
<RectangleGeometry Rect="50,50,50,50" />
</GeometryGroup>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>

浙公网安备 33010602011771号