2015-03-30 113 views
-2

我搜索了一下并尝试了一些代码,但是我无法在没有边框或背景的情况下绘制标签。 所以,我想编程一个小计时器,但我只想看看数字,而不是任何种类的背景。透明表格上的透明标签

在Java中,这非常简单,setUndecorated并将背景颜色设置为Java。 C#中还有一种方法吗?

+0

标签是默认透明的,无国界的。 – Plutonix 2015-03-30 21:17:53

+0

标签背后是什么?确保使标签成为其后面的控件的子项,而不是表单,否则透明度将不正确。如果它与超过一个元素重叠,则会非常麻烦,应该切换到WPF。 – SimpleVar 2015-03-30 21:18:25

+0

我只想要一个没有任何背景的文本。就像一个FPS计数器(是的,这是一个很好的例子)。 标签后面是透明窗体。 我的表单是透明的,也是我的标签的背景颜色,但它只是黑色......整个标签 – unconvincible 2015-03-30 21:21:23

回答

0

我唯一的答案就是你需要拍摄背景图片并设置标签的背景图片。如果你想知道那些工作不正常给你一个代码。

+0

但是这会导致延迟?因为我想把计时器/倒数计时器放在游戏的前面。 – unconvincible 2015-03-30 21:23:09

+1

它会的。使用WPF – SimpleVar 2015-03-30 21:24:12

+0

所以它不会滞后,如果我使用WPF? 从来没有使用过WPF,我可以让它变得透明或者我必须做什么? – unconvincible 2015-03-30 21:25:30

0

这对我的作品(假设两者的标签和形式具有相同的背景色)...

private void Form1_Load(object sender, EventArgs e) 
{ 
    // Make form invisible (except label text) 
    this.TransparencyKey = this.BackColor; 
    this.FormBorderStyle = FormBorderStyle.None; 

    // Optional, but you mentioned you had a border and backcolor on your label: 
    this.label1.BorderStyle = BorderStyle.None; 
    this.label1.BackColor = Color.Transparent; 
} 

另外,如果你只想要一个半透明形式,那么你不透明度设置为一个百分数(0.75为75%):

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.FormBorderStyle = FormBorderStyle.None; 
    this.label1.BackColor = Color.Transparent; 
    this.Opacity = .75; 
} 
0

确定THX家伙:) 我使用WPF,有点研究后更容易。

这里是我的代码:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="CountDown.MainWindow" 
    Title="CountDown" Width="Auto" Height="Auto" SizeToContent="WidthAndHeight" 
    AllowsTransparency="True" WindowStyle="None" Left="0" Top="0"> 
<Window.Background> 
    <SolidColorBrush Opacity="0" Color="White"/> 
</Window.Background> 
<Grid> 
    <TextBlock 
     HorizontalAlignment="Left" VerticalAlignment="Top" Margin="-2, -10" 
     FontFamily="Arial" FontSize="50" FontWeight="Bold" 
     Text="90" 
    /> 
</Grid>