WPF - Transparency - Stream Desktop Content

Приветствую

Я в процессе создания Табло для игры (Starcraft II). Это табло создается как приложение WPF с кодом программной части C #. У меня уже есть версия, которая на 90% работает в WinForms, но мне не хватало поддержки, чтобы она выглядела намного лучше, доступной в WPF.

Задача этого приложения - сформировать своего рода оверлей поверх запущенной игры. Эта игра находится в полноэкранном (оконном) режиме, поэтому в WinForms я закодировал ее так, чтобы она всегда была сверху. Это было бы так, и это не было проблемой.

Поскольку основной вид приложения в WPF основан на изображении с прозрачным фоном, я установил для большинства значений Background значение Transparent. Однако, когда я это делаю, все приложение не регистрируется потоковым программным обеспечением. Например, он просто показывает мой рабочий стол или игру, в которую я играю, но не показывает мое приложение, хотя оно там и есть. Я могу видеть это собственными глазами, но зрители в потоке не могут.

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

Я в основном пытаюсь сделать игровой оверлей на C # и WPF. Я читал, что вы можете делать это разными способами, но я почти не знаю C ++ и ничего не знаю о DirectX.

Спасибо за ваше время, потраченное на чтение, и за ваши возможные идеи.

Edit: Лучшее решение будет наложением, аналогичным наложению Steam / Xfire / Dolby Axon.

Редактировать 2: Мне не повезло со всеми предложениями, поэтому я в основном сделал прозрачные части моего изображения непрозрачными и позволил пользователю решать, какие один для использования в зависимости от того, какое потоковое программное обеспечение они будут использовать.

16
задан Citroenfris 16 December 2010 в 02:14
поделиться