如何将Thumb附加到TextBlock?

时间:2014-05-11 20:03:51

标签: c# wpf canvas textblock

我有以下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;
}

上面显示了一个矩形,可以在画布上拖动。

我的问题:如何将此ThumbTextBlock相关联,以便Thumb覆盖TextBlockThumb透明)我可以拖动TextBlock左右? (PS:相信我,到目前为止我所尝试的并不值得在这里展示。)

我的最终目标是能够拖动TextBlocks,所以我对其他方法持开放态度。不过,我想在Canvas上进行操作。

我在Win 7上使用VS2010,使用.NET 4.0。

1 个答案:

答案 0 :(得分:0)

你读过Dragging Elements in a Canvas吗? 或者这种简单的方式(直到现在我才看到-google)How to make any UI element drag-able using Behaviors in WPF