Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.05.2013, 23:33   #1
Blondy
Профессионал
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Адрес: Scandinavia
Сообщений: 1,384
Репутация: 1230
По умолчанию WPF и Silverlight: Как вернуть TextBlock в исходную позицию?

Дорогие форумчане, как можно вернуть TextBlock в исходную позицию, если мы его перетащили, используя RenderTransform и ManipulationDelta во внутрь прямоугольника? Дело в том, что если я после ManipulationDelta задаю Canvas.SetLeft/SetTop для TextBlock, и практика показывает что метод уже будет брать за точку отчета (0 0) текущую позицию TextBlock, и значит, присваивание элементу начальных значений координат на Canvas (скажем, 50 50), не только не вернет его в начальную позицию, но и сдвинет соответственно еще на 50 пикселей от текущего положения.

Или же получается, что после перемещения во внутрь прямоугольника уже Rectangle становится оберткой для TextBlock, а не Canvas?

XAML
Код:

 <Canvas>
        <TextBlock Height="23"  Name="textBlock1" Text="TextBlock" Canvas.Left="50" Canvas.Top="50" ManipulationStarted="textBlock1_ManipulationStarted">
            <TextBlock.RenderTransform>
                <TranslateTransform x:Name="transform" ></TranslateTransform>
            </TextBlock.RenderTransform>
            </TextBlock>
            <Rectangle Canvas.Left="192" Canvas.Top="120" Height="100" Name="rectangle1" Stroke="Black" Width="100" />
            <Button Canvas.Left="350" Canvas.Top="66" Content="Button" Height="46" Name="button1" Width="94" Click="button1_Click" />
            <TextBox Canvas.Left="208" Canvas.Top="29" Height="23" Name="BoxAxis" Width="120" />
            <Button Canvas.Left="49" Canvas.Top="89" Content="Return" Height="23" Name="button2" Width="75" Click="button2_Click" />
        </Canvas>

Blondy вне форума   Ответить с цитированием
Старый 27.06.2013, 02:04   #2
Luuzuk
Участник клуба
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Адрес: Самара
Сообщений: 975
Репутация: 605

icq: З7ЧЗЗ89Ч5
По умолчанию

Рискну предположить, что после перетаскивания изменились X и Y в TranslateTransform, которые, собственно, и переместили текстблок, и восстанавливать необходимо именно их, а не Canvas.Left и Canvas.Top

Цитата:
и практика показывает что метод уже будет брать за точку отчета (0 0) текущую позицию TextBlock
Это не так, точка отсчета совпадает с левым верхним углом Canvas. Координаты не совпадают по другим причинам (см. выше)

Цитата:
после перемещения во внутрь прямоугольника уже Rectangle становится оберткой для TextBlock, а не Canvas
тоже нет (если конечно это специально не сделано в коде)

Еще рекомендую использовать SilverlightSpy или WpfInspector в качестве хорошего инструмента для отслеживания/изменения свойств объектов, хорошо помогает в отладке
__________________
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 27.06.2013 в 02:06.
Luuzuk вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирования числа для TextBlock xil WPF, UWP, WinRT, XAML 4 17.04.2012 17:26
[Silverlight] Как реализовать массив эллипсов? Java WPF, UWP, WinRT, XAML 0 13.12.2011 00:07
Вакансии програмистов C#, .Net, WPF, Silverlight hrkodisoft Работа на постоянной основе - Вакансии 0 31.08.2011 12:35
TextBlock в ListBox _Николай_ WPF, UWP, WinRT, XAML 0 21.04.2011 00:24
Как подключить .NET библиотеку к Silverlight? Mindzor WPF, UWP, WinRT, XAML 0 05.03.2011 22:45


01:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru