본문 바로가기

C# WPF

C#에서의 투명한 색깔의 표현

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