我有一个UIElement,用户将把东西拖过来然后放到。我在网上看了几篇关于如何在WPF中进行拖放的文章,但它们非常复杂,其中大多数都是为了与Drag Source一起工作,需要一些画布来绘制装饰图像,同时拖动来源和要求在Source的级别附加行为。
我的问题有点不同,我有一个放弃目标,我不知道源的位置。我所要做的就是,当拖动某些东西时,在我的UIElement周围显示矩形或边框。
我尝试处理UIElement.DragEnter并更改了BorderBrush和Thickness,但它没有帮助。
有没有简单的方法呢?
答案 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);
}
如果此答案不符合您的需求,请显示您的工作代码。也许这有助于找到问题。