作成日: 2026/01/28 最終更新日: 2026/01/28
文書種別
不具合
状況
回避方法あり
詳細
DragDropManager において、DropTarget となるグリッドの行の高さや列幅が一律でない場合、2回目以降のドラッグ時に、最初にドラッグした項目のサイズがドラッグ中に表示される境界線や半透明の枠に影響してしまいます。その結果、以降のドラッグ操作では、初回ドラッグ時のスタイルが引き継がれてしまいます。
回避方法
この問題は2025J v2(10.0.20252.1235)で発生します。
以下のようにDragStartイベントでドラッグ時のマーカーのサイズを変更する方法が考えられます。
◎サンプルコード(C#)
public MainWindow()
{
InitializeComponent();
//...
// DragStart イベントを追加します
_dragManager.DragStart += _dragManager_DragStart;
}
private void _dragManager_DragStart(object source, DragDropEventArgs e)
{
Size size = GetElementSize(e.DragSource);
_dragManager.SourceMarker.Width = size.Width;
_dragManager.SourceMarker.Height = size.Height;
_dragManager.TargetMarker.Width = size.Width;
_dragManager.TargetMarker.Height = size.Height;
}
Size GetElementSize(UIElement e)
{
var sz = e.RenderSize;
return sz.Width == 0 && sz.Height == 0 && e is FrameworkElement element ?
new Size(element.ActualWidth, element.ActualHeight) :
sz;
}