我有一个关于Librarystack drop事件的问题。我需要改变库栈上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的样式吗?
发布于 2013-02-06 22:38:08
我相信这应该可以解决你的问题:
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;
}
}
#endregionhttps://stackoverflow.com/questions/12294306
复制相似问题