1. CLR(Common Language Runtime, 공통 언어 런타임)
- MS 이니셔티브에서 제공하는 가상 머신의 구성요소.
- .Net Framework 언어로 개발도니 프로그램 코드는 CIL(Common Intermediate Language, CIL)를 실행한다.
* CIL은 바이트 코드 형태로 구성되어 있다.
- CLR은 CIL 코드를 읽고 OS가 이해할 수 있는 Native Code로 변환하는 역할.
> CLR은 실행 하는 환경에 최적화된 컴파일 코드를 만들고, Native Code 를 생성.
- 소스코드 -> CIL Code -> Native Code의 과정은 Java를 MS에서 참조하여 .NET 프레임워크를 보강.
- .NET 프레임워크에 가상머신을 추가하게 되면서 C# 뿐 아니라 다른 언어로 개발된 IL들은 .NET Framework가 설치된 어떠한 환경에서도 실행할 수 있다.
2. x: 접두사
- SDK 전체의 설명서, 예제 및 프로젝트 템플릿에서 XAML 네임스페이스를 매핑하는 데 사용된다.
- XAML 파일 또는 프로덕션의 루트 요소에서 XAML 언어 내장 형식의 일반적인 XAML 네임스페이스 매핑에 사용.
- e.g)
x:Key: ResourceDictionary | - 각 리소스에 대한 고유한 키를 설정 - x:Key 는 일반적인 WPF 앱의 태그에서 보게될 x: 사용의 90%를 차지할 것. |
x:Class: | - CLR 네임스페이스 및 XAML 페이지에 대한 코드 숨김을 제공하는 클래스의 클래스 이름을 지정 - 이러한 클래스가 WPF 프로그래밍 모델에 대해 코드 숨김을 지원하도록 해야 하므로 리소스가 없는 경우에도 x: 가 매핑된 것을 자주 보게됨. |
x:Name: | - 개체 요소가 처리된 후 런타임 코드에 있는 인스턴스에 대한 런타임 개체 이름을 지정. - 일반적으로는 x:Name 에 대응하여 WPF에 정의도니 속성을 자주 사용하게 된다. - 이러한 속성은 특히 CLR 지원 속성에 매핑되므로 초기화된 XAML에서 명명된 요소를 찾기 위해 런타임 코드를 자주 사용하는 앱 프로그래밍에서 보다 편리. |
x:Static: | - XAML 호환 속성이 아닌 정적 값을 반환하는 참조를 사용할 수 있게 한다. |
x:Type: | - 형식 이름을 기반으로 Type 참조를 생성. - Style.TargetType 같은 Type을 사용하는 특성을 지정하는 데 사용. - 하지만 대부분의 경우 속성에는 기본 문자열-Type 변환이 있으며, 여기서 x:Type 태그 확장 사용은 선택 사항. |
3. FrameworkElement
- WPF 프레임워크 수준에서 WPF의 구체적인 기본 UI 클래스.
- UI를 디자인할 때 다양한 도형, 패널, 데코레이터 또는 컨트롤 클래스를 사용하며, 모두 FrameworkElement에서 파생.
4. WPF의 CAS(Code Access Security)
- 인터넷 영역에서 실행되는 WPF 콘텐츠는 실행 권한이 줄어든다.
- 완전히 신뢰할 수 있는 애플리케이션으로 로드된 XAML은 시스템 리소스에 대해 호스팅 애플리케이션과 동일한 액세스 권한을 가진다.
5. x: Code
- 인라인 프로그래밍 코드를 포함할 수 있도록 한다.
- x: Code 요소 내부에 있으면서 XML의 내용을 이스케이프 하려면 <CDATA[...]] 으로 둘러싸야 한다.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyNamespace.MyCanvasCodeInline"
>
<Button Name="button1" Click="Clicked">Click Me!</Button>
<x:Code><![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
</Page>
6. XAML 정의 태그 확장명
- x:Type
> 명명된 형식에 Type 개체를 제공.
> 스타일 및 템플릿에서 많이 사용.
- x:Static
> 정적 값을 생성.
> 값은 직접적으로 대상 속성 값의 형식이 아닌 해당 형식으로 계산될 수 있는 값-형식 코드 Entity에서 생성.
- x:Null
> 속성 값으로 null을 지정하며 특성 또는 속성 요소 값에 사용될 수 있다.
- x:Array
> WPF 기본 요소 및 컨트롤 모델에서 제공하는 컬렉션 지원이 의도적으로 사용되지 않는 경우 XAML 구문에서 일반적인 배열 만들기를 지원.
7. WPF 관련 태그 확장
StaticResource | - 이미 정의된 리소스의 값을 대체하여 속성에 대한 값을 제공 |
DynamicResource | - 동적 리소스 참조는 리소스가 액세스될 때마다 새로 조회. |
Binding | - 런타임에 부모 개체에 적용되는 데이터 컨텍스트를 사용하여 속성에 대한 바인딩된 값을 제공. |
RelativeSource | - Binding 런타임 개체 트리에서 가능한 여러 관계를 탐색할 수 있는 소스 정보를 제공. - 주변 개체 트리에 대한 완전한 지식 없이 코드에 생성되거나 다용도 템플릿에 생성되는 바인딩에 대한 특수한 소스를 제공. |
TemplateBinding | - 컨트롤 템플릿에서 템플릿을 사용할 클래스 개체-모델 정의 속성에서 가져온 템플릿 기반 속성 값을 사용. - 즉, 템플릿 정의 내의 속성은 템플릿이 적용된 후의 컨텍스트에만 액세스 할 수 있다. |
'Language > C#_WPF' 카테고리의 다른 글
[C#] 데이터 바인딩 숨김 (0) | 2020.12.22 |
---|---|
[C#] 데이터 바인딩 (0) | 2020.12.22 |
[C#] WPF (0) | 2020.12.17 |