Silverlight: анимация паузы - PullRequest
1 голос
/ 13 марта 2012

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

У меня нет доступа к его внутренней структуре.

Как я могу получать скриншоты этой анимации каждые 200 миллисекунд?


Я пробовал с этим кодом:

    var timer = new Timer(state =>
            {
                this.root.Dispatcher.BeginInvoke(() =>
                    {
                            var bitmap = new WriteableBitmap(this.root, new TranslateTransform());
                            SaveImageSomewhere(bitmap, "picture_" + (i++) + ".png");
                    });
            }, null, 0, 200);

Но он не запускает действие скриншотов с интервалами 200 мс, потому что захват запускается в потоке пользовательского интерфейса.

Есть ли возможность остановить (заморозить) анимацию для какого-либо элемента управления?

1 Ответ

1 голос
/ 13 марта 2012

Я бы предложил загрузить Silverlight Spy и использовать его, чтобы посмотреть на элемент управления и как он выполняет анимацию. Если он использует раскадровку, то вы сможете перемещаться по дереву управления, чтобы добраться до раскадровки, и вы можете вызвать на нем метод паузы .

Другой вариант - разместить пользовательский интерфейс внутри элемента управления браузера в форме C # win или в приложении WPF и просто использовать его для захвата скриншотов (или загрузить предварительно созданный ).

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