C#에서 투명한 색깔을 표현하려면 FromArgb 메소드를 사용하면 됩니다.
Color.FromArgb(A,R,G,B);
여기에서 A, R, G, B는 8비트 숫자(0~255)로 각각 알파, 레드, 그린, 불루의 값입니다. A는 투명도를 표현하는데 A가 0이면 완전 투명, 255이면 불투명입니다.
그런데, 예를 들어 버튼의 배경색을 바꾸고자 하면, Button의 Background 를 설정해야 하는데 이는 Brush 타입입니다. 따라서 Color 구조체를 직접 쓸 수 없고 SolidColorBrush 클래스를 통해 구현해야 합니다. 즉,
Button.Background = new SolidColorBrush(Color.FromArgb(50, 255, 0, 0));
와 같은 형태로 사용할 수 있습니다.
예제 프로그램으로 배경에 이미지가 있는 3개의 버튼을 만들고 각각을 투명도를 주면 다음과 같이 구현됩니다.
타원, 사각형에 색깔을 채우는 것도 마찬가지겠지요.
circle.Fill = new SolidColorBrush(Color.FromArgb(50, 0, 255, 0));
코드는 다음과 같습니다.
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Grid.RowSpan="3" Source="tulip.jpg" Stretch="Fill"></Image>
<Button Margin="20" x:Name="btnStr" Content="String 테스트" Click="btnStr_Click"></Button>
<Button Grid.Row="1" Margin="20" x:Name="btnStrBuilder" Content="StringBuilder 테스트" Click="btnStrBuilder_Click"></Button>
<TextBox Grid.Row="2" x:Name="txtResult" Margin="20" Cursor="None" >
</Grid>
public MainWindow()
{
InitializeComponent();
// transparent colors FromArgb(투명도, R, G, B);
btnStr.Background = new SolidColorBrush(Color.FromArgb(50, 255, 0, 0));
btnStrBuilder.Background = new SolidColorBrush(Color.FromArgb(50, 0, 0, 255));
txtResult.Background = new SolidColorBrush(Color.FromArgb(150, 0, 255, 0));
}
Beeeye Dmu
'C# WPF' 카테고리의 다른 글
ITQ 그림 파일 (0) | 2016.09.12 |
---|---|
ListView (0) | 2015.12.08 |
String 클래스와 StringBuilder 클래스의 차이점 (0) | 2015.12.01 |
Stopwatch 사용법 (0) | 2015.11.18 |
[WPF] 시계가 나오는 계산기 (0) | 2015.10.28 |