Я пытаюсь получить несколько кнопок, которые можно полностью перетащить на WP 7/8, но у меня проблемы.Реализация Drag And Drop на нескольких кнопках
Моя главная проблема заключается в том, что у меня есть этот макет настроить ...
И я хотел бы, чтобы иметь возможность independetly перетянуть кнопки прочь, если я хочу. Теперь перетаскивание работает до одной кнопки, но как только я отпустите его и попытаюсь перетащить еще один, он просто «защелкнется» рядом с первой нажатой мной кнопкой, и это продолжается и продолжается, пока все кнопки не перемещаются на в то же время.
Так что, в основном, когда происходит эта «привязка», несколько кнопок начинают перемещаться вместе, как если бы они были только одной кнопкой.
Вот мой XAML код:
<Grid Name="buttons_container" Grid.Row="1" Margin="0,0,0,0">
<toolkit:WrapPanel HorizontalAlignment="Center" Margin="0,0,0,0" Name="wrapPanel1" VerticalAlignment="Center" Width="600">
<Button ManipulationDelta="Drag_ManipulationDelta" Content="1" Height="70" Name="button2" Width="150">
</Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="2" Height="70" Name="button3" Width="150" ></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="3" Height="70" Name="button4" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="4" Height="70" Name="button5" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="5" Height="70" Name="button6" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="6" Height="70" Name="button7" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="7" Height="70" Name="button8" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="8" Height="70" Name="button9" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="9" Height="70" Name="button10" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="10" Height="70" Name="button11" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="11" Height="70" Name="button12" Width="150"></Button>
<Button ManipulationDelta="Drag_ManipulationDelta" Content="12" Height="70" Name="button13" Width="150"></Button>
</toolkit:WrapPanel>
</Grid>
Вот мой C# код:
private TranslateTransform dragTranslation; - global
dragTranslation = new TranslateTransform(); - in constructor of the class
void Drag_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
Button draggedButton = (Button)sender;
draggedButton.RenderTransform = dragTranslation;
dragTranslation.X += e.DeltaManipulation.Translation.X;
dragTranslation.Y += e.DeltaManipulation.Translation.Y;
}
Благодарим за ответ! Однако, если я сделаю упомянутые вами изменения, кнопки просто «застревают» в их исходном положении. Они выглядят так, будто они «пытаются» уйти, но большая магнитная сила удерживает их. Это очень трудно объяснить. – PeterInvincible
, возможно, попробуйте с предложением от другого ответа, попробуйте создать новый TraslateTransform в обработчике событий ('dragTranslation = new TranslateTransform();') вместо повторного использования одного и того же объекта. – har07
То же самое происходит, если я это сделаю. Мне кажется, что, поскольку обработчик события вызывается каждый раз, когда пиксель перемещается («перетаскивается») и сбрасывает начальную позицию кнопки, которую я пытаюсь перетащить. Если я очень осторожен и быстр, я могу «щелкнуть» кнопку, но в тот самый момент, когда я пытаюсь перетащить ее, она продолжает это. – PeterInvincible