2015-03-30 155 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>