본문 바로가기

프로그래밍&IT/C#.WPF

[C# - WPF] x: 의 의미

프리랜서하면서, C#의 윈폼 (winform)으로만 거의 먹고 살았다

그래도 WPF는 어느정도 다뤄야할것같은데 그 중 x:로 시작하는 것들이 궁금해졌다.

 

x:의미

x:는 WPF와 XAML에서 x: 네임스페이스를 나타내며, XAML에서 특별한 기능을 제공하는 예약된 접두사입니다.

이 네임스페이스는 XAML에서 사용되는 여러 기능과 구문을 정의하며, 주로

  • XAML의 마크업을 구성하거나
  • XAML에서 사용할 수 없는 일반 C# 기능을 대체하는 용도

로 사용됩니다.

다음은 x: 접두사가 가지는 주요 항목과 그 의미입니다:

1. x:Class

  • 설명: 현재 XAML 파일이 연결될 클래스의 이름을 지정합니다.
  • 예시: <Window x:Class="YourNamespace.MainWindow" ...>
    이 설정을 통해 XAML 파일과 해당하는 C# 코드 비하인드 파일을 연결합니다.

2. x:Key

  • 설명: 리소스 사전(Resource Dictionary) 내에서 리소스에 고유한 키를 할당합니다.주로 ResourceDictionary에서 사용됩니다.
  • 예시: <Style x:Key="ButtonStyle" TargetType="Button"> <!-- Style details here --> </Style>
    이 경우, 리소스 키를 통해 나중에 ButtonStyle을 참조할 수 있습니다.

3. x:Name

  • 설명: XAML 요소에 이름을 부여하여 코드에서 이 요소를 참조할 수 있도록 합니다. 주로 XAML 요소를 코드 비하인드에서 조작할 때 사용됩니다.
  • 예시: <Button x:Name="myButton" Content="Click Me" />
    이 설정을 통해 코드 비하인드에서 myButton이라는 이름으로 이 버튼을 참조할 수 있습니다.

4. x:Type

  • 설명: 특정 형식을 참조할 때 사용됩니다. 주로 Style이나 DataTemplate 등에서 타입을 지정하는 용도로 사용됩니다.
  • 예시: <DataTemplate DataType="{x:Type local:MyClass}"> <!-- Template definition here --> </DataTemplate>

5. x:Static

  • 설명: XAML에서 정적 필드나 정적 속성에 접근할 때 사용됩니다.
  • 예시: <TextBlock Text="{x:Static system:DateTime.Now}" />
    정적 속성인 DateTime.Now를 XAML에서 바인딩하는 예시입니다.

6. x:Bind (UWP/XAML)

  • 설명: UWP에서 데이터 바인딩을 위해 사용되는 구문입니다. 성능이 더 우수한 컴파일된 바인딩을 지원합니다.

7. x:Null

  • 설명: 속성의 값을 null로 설정할 때 사용됩니다.
  • 예시: <TextBox Text="{x:Null}" />

8. x:Array

  • 설명: XAML에서 배열을 정의할 때 사용됩니다.
  • 예시: <x:Array Type="{x:Type sys:String}"> <sys:String>Item 1</sys:String> <sys:String>Item 2</sys:String> </x:Array>

9. x:DataType

  • 설명: XAML의 바인딩에서 데이터 형식을 지정할 때 사용됩니다. 주로 DataTemplate과 함께 사용됩니다.
  • 예시: <DataTemplate x:DataType="local:MyViewModel"> <!-- Template definition here --> </DataTemplate>

10. x:Shared

  • 설명: 리소스가 공유되도록 할 것인지 여부를 설정합니다. 기본값은 True로, 여러 요소가 동일한 리소스를 공유합니다. False로 설정하면 매번 새 인스턴스를 생성합니다.
  • 예시: <SolidColorBrush x:Key="myBrush" x:Shared="False" Color="Red" />

이처럼 x:는 XAML에서 중요한 구문 요소로, 데이터를 연결하거나, 리소스를 정의하고, 다양한 객체를 참조하는 데 사용됩니다.

x: 접두사는 특별한 기능을 수행하므로 XAML 작성 시 자주 등장합니다.