当拖动某些东西时,如何在UIElement周围显示一个简单的边框

时间:2014-10-24 11:33:15

标签: wpf

我有一个UIElement,用户将把东西拖过来然后放到。我在网上看了几篇关于如何在WPF中进行拖放的文章,但它们非常复杂,其中大多数都是为了与Drag Source一起工作,需要一些画布来绘制装饰图像,同时拖动来源和要求在Source的级别附加行为。

我的问题有点不同,我有一个放弃目标,我不知道源的位置。我所要做的就是,当拖动某些东西时,在我的UIElement周围显示矩形或边框。

我尝试处理UIElement.DragEnter并更改了BorderBrush和Thickness,但它没有帮助。

有没有简单的方法呢?

1 个答案:

答案 0 :(得分:2)

看看这个小例子。当我的问题正确时,你想做什么?

UIElement(在这种情况下是一个列表框)将AllowDrop属性设置为true(根本不需要接收拖动事件)。 在DragEnter事件中,我将厚度设置为10,在dragleave中将其设置为零。 它按预期工作(我尝试了它上面的桌面图标)

<ListBox AllowDrop="True" Name="MBox" BorderBrush="Red" BorderThickness="0"  DragEnter="MBox_OnDragEnter" DragLeave="MBox_OnDragLeave"></ListBox>
private void MBox_OnDragEnter(object sender, DragEventArgs e)
{
    MBox.BorderThickness = new Thickness(10);
}

private void MBox_OnDragLeave(object sender, DragEventArgs e)
{
    MBox.BorderThickness = new Thickness(0);
}

如果此答案不符合您的需求,请显示您的工作代码。也许这有助于找到问题。