2010-05-20 1 views
3

У меня есть рассеянное изображение с некоторыми элементами в нем, которые я размещаю с ориентацией и центром. Теперь я хочу иметь возможность сбросить позиции рассеивающих элементов после масштабирования, вращения и перемещения их во время работы программы.WPF: сбросить позиции разброса данных?

В настоящее время я делаю это так:

частный недействительным Reset_ContactTapGesture (объект отправителя, Microsoft.Surface.Presentation.ContactEventArgs е)

{

 item1.Center = new Point(150,150); 
     item1.Orientation = 15; 
     item1.Width = 100; 
     item1.Height = 150; 

}

Есть ли лучший способ сделать это?

ответ

0

Нет, не совсем. :) У рассеянного обзора нет концепции положения начала или по умолчанию - все они рандомизируются, когда элементы сначала добавляются (кроме размера, установленного на 20% от SV IIRC). Единственный способ сделать это - как вы, манипулируя значениями вручную.

Я предполагаю, что вы можете поместить эту логику в модель просмотра и привязать к ней ширину, высоту, центр и ориентацию на свойства виртуальной машины. Затем VM может иметь метод сброса или команду ретрансляции, которая восстанавливает значения до определенного значения по умолчанию. Это по сути то же самое, что и в коде.

+0

спасибо. Я сделал это таким образом, но я надеялся, что есть еще более элегантный способ ... – sofri

+0

Разброс, который я обнаружил, очень хорош для демонстраций коллекции фотографий, которые MS использует для этого. Для чего-то более требовательного, это чрезвычайно ограничено и трудно использовать. –

Смежные вопросы