Surface SDK Librarystack放置事件

时间:2012-09-06 06:40:14

标签: wpf xaml pixelsense

我遇到了Librarystack放置事件的问题。 我需要更改librarystack上的drop的行为,但是当我在xaml中绑定drop事件时,事件永远不会被提升!

<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的样式吗?

1 个答案:

答案 0 :(得分: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