2020년 7월 21일 화요일

WPF, XAML 이란?

2. XAML

2.1 XAML 이란?

n MS에서 개발한 Silverlight, WPF, Xamarin 프로그래밍의 추가적인 인터페이스로 객체(Window, Button, TextBox, Grid 등)를 XML 마크업 형태로 정의한다.

n HTML이 웹 페이지를 시각적으로 표시하기 위해 내부적으로 사용되는 언어인 것처럼, XAML은 응용 프로그램을 시각적으로 표시하기 위해 내부적으로 사용되는 XML 기반의 언어이다.

n C# 프로그래밍 언어가 아닌 XML 태그를 사용하여 UI를 구성해서 UI와 로직을 분리할 수 있도록 해준다.

n XAML을 통해서 디자이너가 직접 UI 구성을 할 수 있게 되었고 다이나믹한 화면 구성이 가능해졌다. 즉 개발자, 디자이너가 모두 사용 가능한 중간 형태의 UI를 위한 XML 코드이다.

n WPF에서 XAML을 무조건 필요로 하는 것은 아니며 XAML 없이 순수한 C#코드로 WPF 클래스들을 이용해서 동적으로 어플리케이션을 만들 수 있다.

n XAML을 이용하여 XML 코드에서 애니메이션 효과를 구현할 수 있고 이벤트 트리거를 사용하여 사용자의 입력에 동일한 방식으로 응답하도록 구성할 수 있다.

n WPF는 벡터 방식 이미지를 지원하므로 크기를 늘려도 계단현상이 발생하지 않는다.

2.2 XAML vs C# 샘플코드

아래 예문을 참조하자.

[C#]

// StackPanel 생성

StackPanel stackPanel = new StackPanel();

this.Content = stackPanel; //ContentProperty

// TextBlock

TextBlock textBlock = new TextBlock();

textBlock.Margin = new Thickness(10);

textBlock.Text = "Welcome to the World of XAML";

stackPanel.Children.Add(textBlock);

// Button

Button button = new Button();

button.Margin= new Thickness(20);

button.Content = "Click Me!";

stackPanel.Children.Add(button);

[XAML]

<Window> <StackPanel>

<TextBlock Margin="20">Welcome to the World of XAML</TextBlock>

<Button Margin="10" HorizontalAlignment="Right">OK</Button>

</StackPanel>

</window>

[C# 실습]

Wpf 프로젝트 생성 후 아래 C# 코드 비하인드로 작성해 보자.

[MainWindow.xaml.cs]

using System;

using System.Text;

using System.Windows;

using System.Windows.Controls;

namespace WpfApplication1

{

public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

// Create the StackPanel

StackPanel stackPanel = new StackPanel();

this.Content = stackPanel;

// Create the TextBlock

TextBlock textBlock = new TextBlock();

textBlock.Text = "Welcome to XAML";

textBlock.Height = 20;

textBlock.Width = 200;

textBlock.Margin = new Thickness(50);

stackPanel.Children.Add(textBlock);

// Create the Button

Button button = new Button();

button.Content = "OK";

button.Height = 20;

button.Width = 50;

button.Margin = new Thickness(0);

stackPanel.Children.Add(button);

}

}

}

[XAML]

<Window x:Class="WpfApplication1.MainWindow"

xmlns:local="clr-namespace:WpfApplication1"

mc:Ignorable="d"

Title="MainWindow" Height="350" Width="525">

<StackPanel Margin="90">

<TextBlock Text = "Welcome to XAML Tutorial" Height = "20" Width = "200" Margin = "50"/>

<Button Content = "Ok" Height = "20" Width = "60" Margin = "0"/>

</StackPanel>

</Window>

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...