1

我遇到了 Librarystack drop 事件的问题。我需要更改库堆栈上的放置行为,但是当我在 xaml 中绑定放置事件时,该事件永远不会引发!

<s:LibraryStack AllowDrop="True" Drop="infoStack_Drop_1" PreviewDrop="infoStack_Drop_1" x:Name="infoStack" Canvas.Left="1" Canvas.Top="140" Height="280.5" Width="329"  Background="Transparent">

另一个问题:我可以更改禁用的 SurfaceTextBoxes 的样式吗?

4

1 回答 1

1

我相信这应该可以解决您的问题:

http://msdn.microsoft.com/en-us/library/ff727842.aspx

“更改默认拖放行为默认情况下,当一个项目从 LibraryBar 控件拖放到另一个控件上时,它会在 LibraryBar 控件中保持非活动(变暗)状态。您可以通过附加一个PreviewDropEvent 事件处理程序到目标控件。”

C#

#region AddPreviewDropHandler
//Add the preview drop event to the stack
SurfaceDragDrop.AddPreviewDropHandler(MainLibraryStack, OnPreviewDrop);
#endregion

“当被拖动的项目被拖放到 LibraryStack 控件上时,会引发附加事件。在事件处理程序中,检查 DragSource 属性是否属于源 LibraryBar 控件。如果是,请将 Effects 属性更改为 DragDropEffects,以便项目已从源 LibraryBar 控件中删除。”

C#

#region OnPreviewDrop
//Add what stack effects you want here
private void OnPreviewDrop(object sender, SurfaceDragDropEventArgs e)
{
    if (MainLibraryBar.IsAncestorOf(e.Cursor.DragSource))
    {
        e.Effects = DragDropEffects.Move;
    }
}
#endregion
于 2013-02-06T14:38:08.073 回答