본문 바로가기
Study/WPF

[WPF][C#][Study] WPF 시작 1일차

by 스테디코디스트 2023. 9. 14.
반응형

1.  Hello World를 출력했다!

<Window x:Class="WpfApplication1.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">
    <Grid>
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="72">
            Hello, WPF!
        </TextBlock>
    </Grid>
</Window>

 

2. XAML

- eXtensible Application Markup Language의 약자

- GUI를 묘사하기 위한 Microsoft XML의 한 형태

- 간단하게 GUI를 생성하고 편집할 수 있다는 장점이 있음

- 꺾쇠괄호(<>)에 컨트롤의 이름을 넣어 컨트롤을 생성하고, 끝맺음 태그를 쓰거나 시작 태그에 슬래시를 써서 닫아줘야 함

<Button></Button> 	// 1
<Button />		// 2

 

- 대소문자를 구별해주어야 한다.

- 각 컨트롤은 속성을 가질 수 있음

- 속성은 두가지 방법으로 표현할 수 있음

// 1번째 방법
<Button FontWeight="Bold" Content="A button" />

// 2번째 방법
<Button>
    <Button.FontWeight>Bold</Button.FontWeight>
    <Button.Content>A button</Button.Content>
</Button>

- WrapPanel을 이용해 여러 하위 요소들을 묶을 수 있음

// 1번째 방법
<Button>
    <Button.FontWeight>Bold</Button.FontWeight>
    <Button.Content>
        <WrapPanel>
            <TextBlock Foreground="Blue">Multi</TextBlock>
            <TextBlock Foreground="Red">Color</TextBlock>
            <TextBlock>Button</TextBlock>
        </WrapPanel>
    </Button.Content>
</Button>

// 2번째 방법
<Button FontWeight="Bold">
    <WrapPanel>
        <TextBlock Foreground="Blue">Multi</TextBlock>
        <TextBlock Foreground="Red">Color</TextBlock>
        <TextBlock>Button</TextBlock>
    </WrapPanel>
</Button>

- 같은 코드를 C#으로 작성했을때와 비교

Button btn = new Button();
btn.FontWeight = FontWeights.Bold;

WrapPanel pnl = new WrapPanel();

TextBlock txt = new TextBlock();
txt.Text = "Multi";
txt.Foreground = Brushes.Blue;
pnl.Children.Add(txt);

txt = new TextBlock();
txt.Text = "Color";
txt.Foreground = Brushes.Red;
pnl.Children.Add(txt);

txt = new TextBlock();
txt.Text = "Button";
pnl.Children.Add(txt);

btn.Content = pnl;
pnlMain.Children.Add(btn);