我有以下XAML:
<Window x:Class="thumb_test.MainWindow" Title="MainWindow" ... >
<Grid>
<Canvas>
<Thumb Canvas.Top="25" Canvas.Left="25" Width="50" Height="50"
Name="_thumb1" DragStarted="ThumbStart" DragDelta="ThumbMoved" >
</Thumb>
</Canvas>
</Grid>
</Window>
以下是相应的代码隐藏:
void ThumbStart(object sender, DragStartedEventArgs e)
{
_originalLeft = Canvas.GetLeft(_thumb1);
_originalTop = Canvas.GetTop(_thumb1);
}
void ThumbMoved(object sender, DragDeltaEventArgs e)
{
double left = _originalLeft + e.HorizontalChange;
double top = _originalTop + e.VerticalChange;
Canvas.SetLeft(_thumb1, left);
Canvas.SetTop(_thumb1, top);
_originalLeft = left;
_originalTop = top;
}
上面显示了一个矩形,可以在画布上拖动。
我的问题:如何将此Thumb
与TextBlock
相关联,以便Thumb
覆盖TextBlock
(Thumb
透明)我可以拖动TextBlock
左右? (PS:相信我,到目前为止我所尝试的并不值得在这里展示。)
我的最终目标是能够拖动TextBlocks
,所以我对其他方法持开放态度。不过,我想在Canvas
上进行操作。
我在Win 7上使用VS2010,使用.NET 4.0。
答案 0 :(得分:0)
你读过Dragging Elements in a Canvas吗? 或者这种简单的方式(直到现在我才看到-google)How to make any UI element drag-able using Behaviors in WPF