레이블이 WPFXAML인 게시물을 표시합니다. 모든 게시물 표시
레이블이 WPFXAML인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 20일 토요일

WPF교육, WPFXAML, WPF동영상, XAML, XAML강좌, WPF메인, WPF

WPF교육, WPF동영상, Main 메소드 없이 XAML을 만들기


https://www.youtube.com/watch?v=KfY6DqWtcqs&list=PLxU-iZCqT52Cmj47aKB1T-SxI33YL7rYS&index=5&t=22s 

  • 윈도우나 다른 엘리먼트, 컨트롤을 위한 XAML 파일을 만드는 것 이외에 Application 객체를 위한 XAML 파일을 만들고 Main 메소드를 작성하지 않는 것이 보편적인 방법이다. 
  • 비주얼 스튜디오 -> WPF 응용프로그램 , 프로젝트명 : NoMainXaml

http://ojc.asia/bbs/board.php?bo_table=WPF&wr_id=159 


WPF교육, WPF동영상, Main 메소드 없이 XAML을 만들기

WPF교육, WPF동영상, Main 메소드 없이 XAML을 만들기윈도우나 다른 엘리먼트, 컨트롤을 위한 XAML 파일을 만드는 것 이외에 Application 객체를 위한 XAML 파일을 만들고 Main 메소드를 작성하지 않는 것이

ojc.asia

App.xaml, MainWindow.xaml 삭제

  • 프로젝트에서 마우스 우측버튼 -> 추가 -> 새항목 -> WPF -> 창(Window) -> MyWindow.xaml 생성

 

 

  • MyWindow.xaml

 

<Window x:Class="NoMainXaml.MyWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MyWindow" 

        SizeToContent="WidthAndHeight"

        ResizeMode="CanMinimize">

    <Button HorizontalAlignment="Center"

            VerticalAlignment="Center"

            Margin="1.5in"

            Click="Button_Click">

        Click Me!        

    </Button>

</Window>

 

이 XAML 파일은 MyWindow.xaml.cs 파일에 정의되어 있는 MyWindow 클래스를 Partial 클래스로써 공유한다. MyWindow.xaml.cs의 생성자에서는 InitializeComponent를 호출하고 Button의 Click 이벤트를 위한 이벤트 핸들러(Button_Click)를 작성한다.

 

  • MyWindow.xaml.cs

 

using System.Windows;

using System.Windows.Controls;


namespace NoMainXaml

{

public partial class MyWindow : Window

    {

        public MyWindow()

        {

            InitializeComponent();

        }


        private void Button_Click(object sender, RoutedEventArgs e)

        {

            Button b = sender as Button;

            MessageBox.Show("Button " + b.Content);

        }

    }

}



  • 이번에 작성할 XAML 파일은 Application 객체를 위한 것으로 이름은 MyApplication.xaml 이다.

 

  • 프로젝트에서 마우스 우측버튼 -> 추가 -> 새항목 -> WPF -> 창(Window) -> MyApplication.xaml 생성 후 속성 창에서 빌드작업 : ApplicationDefinition으로 설정.




 

[MyApplication.xaml]

<Application x:Class="NoMainXaml.MyApplication"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        StartupUri="MyWindow.xaml" />

 

[MyApplication.xaml.cs]

using System.Windows;


namespace NoMainXaml

{

    public partial class MyApplication : Application

    {

        public MyApplication()

        {

        }

    }

}

 

  • StatupUri 속성은 어플리케이션이 구동되기 전에 MyWindow.xaml 파일은 MyWindow.baml로 컴파일되고 응용프로그램 리소스를 생성하지만 이는 단지 응용프로그램이 띄울 초기 Window 객체 자체선언에 지나지 않는다. 따라서 StratupUri는 메인함수에서 호출하는 Run() 메소드를 대체해서 초기 Window를 띄운다.

 

  • MyApplication.xaml.cs 파일은 XAML 파일 속성에 이벤트 핸들러 메소드가 있다면 이 파일 안에서 그 메소드를 구현하면 된다.

 

  • 이 프로그램을 컴파일 하고나서 obj -> debug안의 MyApplication.g.cs 파일에 Main 메소드가 생성되어 있는 것을 확인해 보자.

 

public static void Main() {

            NoMainXaml.MyApplication app = new NoMainXaml.MyApplication();

            app.InitializeComponent();

            app.Run();

        }

 

  • 실행 화면 



#WPF교육, #WPFXAML, #WPF동영상, #XAML, #XAML강좌, #WPF메인, #WPF

WPF교육, WPFXAML, WPF동영상, XAML, XAML강좌, WPF메인, WPF 

(C#,WPF강좌, WPF교육, WPF학원)XAML이란,XAML개요

 

(C#,WPF강좌, WPF교육,  WPF학원)XAML이란,XAML개요


2.1 XAML 이란?


http://ojc.asia/bbs/board.php?bo_table=WPF&wr_id=156 


(C#,WPF강좌, WPF교육)XAML이란,XAML개요

(C#,WPF강좌, WPF교육)XAML이란,XAML개요2.1 XAML 이란?MS에서 개발한 Silverlight, WPF, Xamarin 프로그래밍의 추가적인 인터페이스로 객체(Window, Button, TextBox, Grid 등)를 XML 마크업 형태로 정의한다.HTML이 웹 페

ojc.asia

  • MS에서 개발한 Silverlight, WPF, Xamarin 프로그래밍의 추가적인 인터페이스로 객체(Window, Button, TextBox, Grid 등)를 XML 마크업 형태로 정의한다.
  • HTML이 웹 페이지를 시각적으로 표시하기 위해 내부적으로 사용되는 언어인 것처럼, XAML은 응용 프로그램을 시각적으로 표시하기 위해 내부적으로 사용되는 XML 기반의 언어이다.
  • C# 프로그래밍 언어가 아닌 XML 태그를 사용하여 UI를 구성해서 UI와 로직을 분리할 수 있도록 해준다.
  • XAML을 통해서 디자이너가 직접 UI 구성을 할 수 있게 되었고 다이나믹한 화면 구성이 가능해졌다. 즉 개발자, 디자이너가 모두 사용 가능한 중간 형태의 UI를 위한 XML 코드이다.
  • WPF에서 XAML을 무조건 필요로 하는 것은 아니며 XAML 없이 순수한 C#코드로 WPF 클래스들을 이용해서 동적으로 어플리케이션을 만들 수 있다.
  • XAML을 이용하여 XML 코드에서 애니메이션 효과를 구현할 수 있고 이벤트 트리거를 사용하여 사용자의 입력에 동일한 방식으로 응답하도록 구성할 수 있다. 
  • WPF는 벡터 방식 이미지를 지원하므로 크기를 늘려도 계단현상이 발생하지 않는다.


https://www.youtube.com/watch?v=innYXvo9WpA&list=PLxU-iZCqT52Cmj47aKB1T-SxI33YL7rYS&index=2&t=29s 


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="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"

        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>



#WPFXAML, #XAML이란, #XAML, #WPF교육, #WPF강좌, #WPF학원, #WPF동영상

WPFXAML, XAML이란, XAML, WPF교육, WPF강좌, WPF학원, WPF동영상 

(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...