Не ответ, который вы ищете, но: вы не должны использовать WPF для игр. Придерживайтесь форм (которые не будут выбрасываться MS, поскольку WPF не заменяет формы) или попробуйте XNA, если хотите перейти на следующий уровень.
ОБНОВЛЕНИЕ: Вчера я очень быстро ответил на вопрос, потому что я спешил и , потому что я также изучал WPF, чтобы делать игры, поэтому я не хотел оставить ОП без правильного ответа.
Вот сделка:
Цель WPF - упростить разработку с богатым пользовательским интерфейсом. Во-первых, MS поняла, что Forms способ кодирования сочетает поведение с представление . Это плохо, как для разработки приложений, так и для удобства обслуживания. Кроме того, в формах все должно быть закодировано; Сама библиотека очень мало делает для пользователя. Например, если вы хотите, чтобы кнопка имела другой вид, вы должны переопределить ее метод Draw
, а затем каким-то образом нарисовать любую графику, которая ее представляет.
В WPF поведение отделено от представления . Например, что такое кнопка? В окнах мы знаем, что это прямоугольник со скругленными углами, но оглянись вокруг ... твоя мышь также является кнопкой, даже если она не похожа на кнопку по умолчанию в Windows. Быть кнопкой - значит иметь определенное поведение (в основном нажатие), а не выглядеть как поле. С WPF это очень просто. Вы определяете кнопку и затем используете, скажем, изображение или текст, чтобы представить ее пользователю.
Все это, конечно, обходится дорого; например, WPF медленнее, чем формы. Игры должны быть быстрыми и стараться не тратить ресурсы. В играх каждое поведение, как правило, кодируется (конечно, не пользовательский интерфейс), каждая презентация настраивается (2D-графика или 3D-объект), поэтому вам все равно придется много писать. Таким образом, вы используете дорогую технологию, но отбрасываете большинство ее преимуществ.
Но я не специалист. Вы можете проверить этот блог, где бывший сотрудник Microsoft почти два года пытался использовать WPF для игр. И он делает вывод:
Вы, наверное, заметили, что блог
давно не обновлялся. WPF
производительность просто не кажется
там для серьезных игр, и я
бросил в полотенце и будет работать на
игры с использованием XNA. Я просто не думаю
стоит бороться с WPF
рамки ...
Оттуда я сделал большинство своих выводов.