![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| maxxi |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 22.4.2007 Репутация: нет Всего: нет |
доброго времени суток всем участникам форума!
начинаю разбираться с WPF с C# и возникла следующая проблема - после нажатия на CheckBox через 2 секунды нужно сделать ТекстБокс видимым. (до того, как чек бокс не нажат - текст бокс не видим). В течении этох двух секунд, после нажатия на чек бокс, хотелось бы "имиторовать" ожидание - то есть, чтобы курсор мышки был как при ожидании выполнении программы - или песочные часы или окружность, как в Висте. - Как лучше сделать? - Просто "остновить" прорамму, например так
Но как тогда указать, чтобы в течении этих двух секунд двигался курсор? - или написать таймер? Вот мой таймер, только он не работает...Тест бокс не отображается. Подскажите, пожайлуста, что делаю не правильно.
спасибо за ответы |
||||
|
|||||
| SKrivosein |
|
||||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Если действительо говорим о WPF , то одна из его (WPF) задач была отделить такие замарочки от логики приложения (кода C#) и перенести их в XAML.
Моё рашение
и не одной строки кода. Причем можно добавлять сколько угодно анимации, главне не переборщить Сделано в Бленде за пару секунд. А что касается твоего таймера,
может я чего недоганяю, в каком пространстве имён ты его взял? Это сообщение отредактировал(а) SKrivosein - 16.2.2011, 11:59 |
||||
|
|||||
| maxxi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 22.4.2007 Репутация: нет Всего: нет |
большое спасибо за ответ!
таймер я имел в виду из System.Timers. Но при помощи триггеров - намного проще, не знал что так можно. А вот чисто теоретически - возможно, к примеру, скачать какой-нибудь 3Д курсор для Виндоус и его использовать в WPF? |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Я не понял, что значит 3D в вашем понимании (возможно вы имеете ввиду просто объемно-выглядящий курсор), но курсор загрузить конечно же можно. Используйте один из конструкторов класса Cursor. Можно загрузить из файла *.cur или *.ani, либо из потока.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
Это как я знаю плохой код. Дело в том, что метод Start() не блокирующий, а значит что таймер будет уничтожен GC-ром, т.к. на него нет ссылок (и не факт что он хоть раз "тикнет").... В документации кстати [http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx] это указано(в примере смотрите, мол вызывайте GC.KeepAlive() чтобы держать GC "вкурсе" что таймер вам этот нужен). Я на хабре разбирал подобное с таймером, где в релизе тикает раз и GC жрет таймер. Только там другой таймер, с этим так просто не получится показать. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| SKrivosein |
|
||||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Проверил код на дебагеру
Возникает две интересные вещи, во первых
так как AutoReset = true таймер продолжает лупить каждые две секунды. Во вторых, даже если это исправить, главная ошибка
System.InvalidOperationException was unhandled by user code Message=Процесс не может получить обьект, потому что он пренадлежит другому процессу. Source=WindowsBase StackTrace: v System.Windows.Threading.Dispatcher.VerifyAccess() v System.Windows.Threading.DispatcherObject.VerifyAccess() v System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) v System.Windows.UIElement.set_Visibility(Visibility value) v WpfApplication1.MainWindow.timer_Elapsed(Object sender, ElapsedEventArgs e) v C:\Users\SERGEJ\Documents\Visual Studio 2010 \Projects\WpfApplication1\WpfApplication1\MainWindow.xaml.cs: 36 v System.Timers.Timer.MyTimerCallback(Object state) InnerExcept Сижу, думаю... Это сообщение отредактировал(а) SKrivosein - 17.2.2011, 05:21 |
||||
|
|||||
| -Mikle- |
|
||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Этот таймер потоковый. Для работы с ЮИ он не подходит. Варианта много: 1) Использовать то, что предложил SKrivosein в XAML 2) Использовать таймер из пространства System.Windows.Forms 3) Оставить таймер из System.Timer, но в timer_Elapsed код, работающий с UI, поместить в this.Invoke(....) 4) Использовать просто отдельный поток в миксе с (3) 5) Использовать микс между XAML и кодом управляя из кода через VisualStateManager (1) Уже есть (2) Проблем с пониманием не должно быть (3)
(4)
(5) Сначала в МСДН за описанием про VisualStateManager. Начать отсюда можно: http://msdn.microsoft.com/ru-ru/library/sy...atemanager.aspx -------------------- Если тебе плюют в спину, значит ты впереди... |
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
http://habrahabr.ru/blogs/net/108815/ почитайте. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| maxxi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 22.4.2007 Репутация: нет Всего: нет |
н. п.
всем спасибо! разобрался! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |