【问题标题】:Making an application with semi-transparent window and "transparent input"制作具有半透明窗口和“透明输入”的应用程序
【发布时间】:2015-05-02 02:01:52
【问题描述】:

我想制作一个带有透明窗口的应用程序。我想在这个窗口的背景上放一张图片,并使窗口对输入透明(即,如果我点击窗口,如果没有这个应用程序,它就像我在屏幕上点击一样)。我想在应用程序启动时为输入 alpha 创建输入框。是否可以在 C# 中制作这样的应用程序?如果是,最好的方法是什么?

【问题讨论】:

  • 这是你可以在任何平台上用任何编程语言做的事情,因为它是由操作系统而不是特定平台提供的。您应该先选择您的平台,然后看看如何在该平台上执行此操作(并询问您是否在 Google 上找不到任何东西)
  • @Pekka웃。我知道如何在某些平台上使窗口透明。问题是如何进行“透明输入”,即如果我点击我的应用程序上的某个地方,系统的行为就像这个应用程序没有运行一样,如果我在没有我的应用程序的情况下点击屏幕上的那个地方,它会是一样的。如果可以在任何平台上完成,我会选择 C#,但我不知道如何做到这一点。
  • 似乎与此有关(尽管它使用 WinForms,而不是 WPF)stackoverflow.com/q/855826/103167
  • 你的意思是你点击了你的应用程序,在它的矩形内而不是在它的非矩形区域内?并且收到鼠标点击的窗口来到了最前面?我建议您将窗口设置为“最顶层”。 Win32 方式使用SetWindowPos,但 WinForms 有一个 Topmost 属性,WPF 可能也有。

标签: c# windows transparency


【解决方案1】:

您可以在 WPF 应用程序中通过以下 XAML 代码创建透明窗口。您可以在 0 和 1 之间改变不透明度值以获得所需的透明度。要获得完全透明,请使用 0。

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        AllowsTransparency="True" WindowStyle="None" IsActive="False">
    <Window.Background>
        <SolidColorBrush Opacity="0.5" Color="White"/>
    </Window.Background>
    <Grid>
        <TextBox Width="200" Height="50"/>
    </Grid>
</Window>

【讨论】:

  • 我知道这一点,但这并不是我问的。 “透明输入”呢?
  • 你想要一个透明的文本框?
  • 不,我想要“透明输入”,即如果我点击我的应用程序上的某个地方,系统会表现得好像这个应用程序没有运行,如果我点击屏幕上的那个地方,它会是一样的没有我的申请。
  • 透明输入和“之间的关系是什么如果我点击我的应用程序的某个地方,系统会表现得好像这个应用程序没有运行,如果我点击屏幕上的那个地方,如果有的话,它会是一样的不是我的申请。”?我不懂诶。你想如何接受输入?
  • 我想制作具有以下功能的应用程序: 1. 该应用程序的窗口必须是半透明的 2. 如果我点击我的应用程序的窗口,系统的行为就像我点击了屏幕上的那个地方,就像我的应用程序没有运行一样。例如,如果我玩一些游戏并运行我的应用程序,我会在游戏窗口上看到我的应用程序的半透明窗口。另外,我可以完全正常地玩游戏,就像我的应用程序没有运行一样(包括如果我点击我的应用程序,系统的行为就像我点击了游戏窗口一样)。
猜你喜欢
  • 2016-03-03
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多