안녕하세요~! 문쑹입니다 :)
XMAL 이론
XAML 네임스페이스 이해
MainWindow.xaml 소스 코드
<Window x:Class="BikeShop.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:BikeShop"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Frame x:Name="MainFrame" Source="/BikeShop;component/Contact.xaml" NavigationUIVisibility="Hidden"/>
</Grid>
객체 생성 방법
new Car(); <!-- C#에서의 객체 생성 -->
<Car /> <!-- XAML에서 객체 생성 -->
// Car 클래스 선언
using System.Windows.Media;
namespace BusinessLogic
{
public class Car
{
public double Speed{get;set;}
public ColorColor {get;set;}
}
}
// C# 객체 생성
using BusinessLogic;
new Car();
XAML에서 객체 생성
<Label xmlns:bl="clr-namespace:BusinessLogic">
<bl:Car />
</Label>
생성한 객체의 속성 값 할당
/* ====== C# ====== */
var c=new Car();
c.Speed =100;
c.Color =Colors.Red;
<!-- ====== XAML ====== -->
<Label xmlns:bl="clr-namespace:BusinessLogic">
<bl:Car Speed="100" Color="Red"/>
</Label>
확장
public class Human
{
public string FirstName {get; set;}
public bool HasDrivingLicense {get; set;}
}
public class Car
{
public double Speed {get; set;}
public ColorColor {get; set;}
public HumanDriver {get; set;}
}
아래의 코드는 C# 코드와 XMAL 코드이지만 내용은 동일하다.
var h=new Human();
h.FirstName ="Nick";
h.HasDrivingLicense =true;
var c=new Car();
c.Speed =100;
c.Color =Colors.Red;
c.Driver =h;
<Label xmlns:bl="clr-namespace:BusinessLogic">
<bl:Car Speed="100" Color="Red">
<bl:Car.Driver>
<bl:Human FirstName="Nick" HasDrivingLicense="True"/>
</bl:Car.Driver>
</bl:Car>
</Label>
명명 규칙
XAML요소를 참조할 때
xmlns:bl="clr-namespace:BusinessLogic"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"
Title="Test">
<Grid>
<Label>
<bl:Car x:Name="myCar" Speed="100" Color="Red"/>
</Label>
</Grid>
C#에서 사용할 때
private void Inits()
{
myCar.Color =Colors.Blue;
}
이벤트
코드 비하인드 메서드와 연계
<Button Click="Greet"/>
private void Greet(object sender,RoutedEventArgs e)
{
MessageBox.Show("Hell");
}
'C# WPF' 카테고리의 다른 글
C# Winform WPF #5 (0) | 2020.06.26 |
---|---|
C# Winform WPF #4 (0) | 2020.06.25 |
C# Winform WPF #3 (0) | 2020.06.23 |
C# Winform WPF #1 (0) | 2020.06.23 |