问候
我正在为一款游戏制作记分牌(星际争霸2)。此记分板是作为一个带有C#代码隐藏的WPF应用程序创建的。我已经有了一个可以在WinForms中工作的90%的版本,但我缺乏支持,无法轻松地让它看起来更好,这在WPF中是可用的。
这个应用程序的重点将是在运行的游戏之上形成一种覆盖。这个游戏是在全屏(窗口模式),所以当在WinForms中时,我编码它,使它应该总是在顶部。它会这样做,这是没有问题的。
由于应用程序在WPF中的主要外观是基于具有透明背景的图像,因此我已将大多数背景值设置为透明。然而,当我这样做时,整个应用程序不会被流软件注册。例如,它只显示我的桌面或我正在玩的游戏,而不显示我的应用程序,即使它在那里。我可以亲眼看到它,但流上的观众看不到。
有没有人对这件事有任何经验,因为它真的让我头疼。如果我的整个应用程序在流上不可见,那么它将是无用的。如果我必须把背景的颜色,而不是透明的UI将完全摧毁以及在外观方面。
我基本上是想在C#和WPF中做一个游戏覆盖。我读到过,你也可以用不同的方法来做这件事,但我对C++知之甚少,也对DirectX一无所知
感谢您花时间阅读和您可能的见解。
编辑:最好的解决方案是一个类似于Steam/Xfire/Dolby Axon的叠加。
编辑2:我没有得到所有的建议,所以我基本上让我的图像的透明部分不透明,让用户根据他们将使用的流媒体软件来决定使用哪一个。
发布于 2012-04-10 13:28:23
我在WPF的透明度方面也有同样的问题。当您将透明度设置为零时,它不会拾取任何内容。将其设置为最小值,然后流媒体软件将能够拾取它。
发布于 2010-12-08 18:50:24
这只是一个想法,但如果你让它几乎是透明的(即alpha = 0.01左右)呢?然后,它应该有足够的“实体”,可以被流拾取,但仍然足够隐形,不会干扰视图。
发布于 2010-12-29 06:48:16
一种可能性是alpha混合完全在GPU上完成,从而阻止流媒体软件找到它。因此,您可以尝试在您的WPF应用程序中强制软件渲染。可以通过设置以下内容来完成此操作:
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly
https://stackoverflow.com/questions/4377334
复制相似问题