Я использую настройку MVVM для своего приложения, и я использую scrollViewer для прокрутки карты. На этой карте у меня есть единица, которую я бы хотел передвинуть, когда я ее выберу. Однако, когда я выбираю устройство, мой ScrollViewer все еще активирован, есть ли способ обойти scrollViewer или деактивировать его, чтобы я мог перемещать устройство. Я уже пытался изменить ManipulationModeProperty на Control, но thius делает отставание устройства, когда я его перемещаю.Перемещение объекта в ScrollViewer
Моего ScrollViewer является:
<ScrollViewer Width="768" Height="380" HorizontalScrollBarVisibility="Hidden">
<View:Map/>
</ScrollViewer>
блока, где я применяю манипуляцию:
public void ManStart(ManipulationStartedEventArgs e)
{
myScrollViewer.SetValue(ScrollViewer.ManipulationModeProperty, ManipulationMode.Control);
public void ManDelta(ManipulationDeltaEventArgs e)
{
Point fingerPosition = e.DeltaManipulation.Translation;
Unit.x = fingerPosition.X + ChampModelSel.x;
Unit.y = fingerPosition.Y + ChampModelSel.y;
}
public void ManCompleted(ManipulationCompletedEventArgs e)
{
var myScrollViewer = FindParentOfType<ScrollViewer>(ChampViewModel) as ScrollViewer;
myScrollViewer.SetValue(ScrollViewer.ManipulationModeProperty, ManipulationMode.System);
}
Я не совсем уверен, но смотрю на захват мыши для элементов ui. –
* Есть ли способ обойти scrollViewer или отключить его, чтобы я мог перемещать единица вокруг? * Да, это называется [Перетаскивание] (http://msdn.microsoft.com/en-us/library/ms742859 (v = vs.110) .aspx). – Sheridan
@Sheridan Я пробовал по ссылке, которую вы добавили, но для windows phine я не могу получить DragDrop.DoDragDrop(), потому что мне не хватает использования или ссылки? – JonasN89