アプリケーションでドラッグ アンド ドロップをサポートしています。特定のアイテムのドラッグを開始すると、コードからドラッグ ビジュアルを作成します。以下のコードは機能しますが、以下のようにハードコーディングするのではなく、スタイルを使用して幅と高さを設定したいと考えています。どのように?
private void OnDragInitialize(object sender, DragInitializeEventArgs args)
{
args.AllowedEffects = DragDropEffects.All;
var shape = new MyShape();
// TODO: How do I let the 'DragShapeStyle' style apply the dimensions?
var shapeSize = new Size(180, 80);
var dropInfo = new DiagramDropInfo(shapeSize, SerializeItems(
new List<IDiagramItem> { shape }));
args.Data = dropInfo;
args.DragVisualOffset = new Point(
args.RelativeStartPoint.X - (shapeSize.Width / 2),
args.RelativeStartPoint.Y - (shapeSize.Height / 2));
var dragShape = new DragShape()
{
DataContext = new ShapeData()
{
Data = new MyData()
}
};
dragShape.SetResourceReference(DragShape.StyleProperty, "DragShapeStyle");
args.DragVisual = new ContentControl() { Content = dragShape };
}
私のスタイルは、プロパティやその他のロジックDragShapeStyle
を使用してサイズを設定したグリッドを描画します。MyData
ドラッグしたビジュアルにこのロジックを適用したいと考えています。