Произвольное перетаскивание для WP7 - PullRequest
5 голосов
/ 31 января 2012

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

Я искал в Google и здесь, но каждый вопрос, связанный с перетаскиванием, который я нашел, касается обмена данными, а не только позицией.

Кто-нибудь знает о чем-то готовом или вы можете указать мне направление, в которое я должен смотреть?

Ответы [ 3 ]

4 голосов
/ 11 февраля 2012

Вы можете сделать это, используя поведения:

<TextBlock Text="Hello!">
    <i:Interaction.Behaviors>
        <el:MouseDragElementBehavior ConstrainToParentBounds="True"/>
    </i:Interaction.Behaviors>
</TextBlock>

Вам необходимо добавить ссылку на Microsoft.Expression.Interactions в вашем решении и следующее пространство имен вверху файла XAML:

xmlns:el="clr-namespace:Microsoft.Expression.Interactivity.Layout;assembly=Microsoft.Expression.Interactions"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
3 голосов
/ 07 февраля 2012

xaml:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <TextBlock Height="30" Margin="125,132,0,0"
               Name="textBlock1" Text="TextBlock"
               Width="83" MouseMove="textBlock1_MouseMove" />
</Grid>

и код:

private void textBlock1_MouseMove(object sender, MouseEventArgs e)
{
   TextBlock realSender = (TextBlock)sender;
   var theParent = (Grid)realSender.Parent;
   var position = e.GetPosition(theParent);
   realSender.Margin = new Thickness(
                       position.X - realSender.Width / 2,
                       position.Y - realSender.Height / 2, 0, 0);

}
0 голосов
/ 31 января 2012

Пример инструментария , использованный для включения примера выполнения этого.

Не уверен, что он все еще там, хотя он был основан на поддержке жестов, которая с тех пор устарела.Если это не так, проверьте версию август 2011 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...