programing

Generic.xaml의 특별한 점은 무엇입니까?

codeshow 2023. 4. 17. 22:09
반응형

Generic.xaml의 특별한 점은 무엇입니까?

ResourceDictionary 파일을 재사용 및 팀원들과 공유할 수 있도록 구성하는 방법을 찾고 있습니다.

"Generic.xaml"은 계속 떠오르는데, MSDN에서 Generic.xaml을 찾거나 구글 검색만 하면 블로그 투고와 포럼 질문만 올라오는 것 같습니다.정말 권위적이고 명확한 것은 찾을 수 없습니다.

Generic.xaml과 MyRandomlyNamedResourceDictionary.xaml의 차이점은 무엇입니까?어느 쪽이든 라이브러리에 저장된 ResourceDictionary를 Source 속성으로 참조해야 합니다.예:

<Application.Resources>
    <ResourceDictionary
        Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>

그렇다면 Generic.xaml은 정확히 어떤 이점을 제공합니까?애플리케이션에 복수의 「외관」을 부여하지 않는 경우(테마가 1개뿐인 경우)에는, 목적이 있습니까.

WPF의 모든 컨트롤에는 컨트롤의 기본값을 제공하는 기본 스타일이 있습니다.ControlTemplate. WPF는 컨트롤과 동일한 어셈블리에 있는 테마 폴더에 있는 특수 리소스 사전에서 기본 스타일을 찾습니다.기본 스타일에 대한 키는 에서 제공합니다.Control.DefaultStyleKeyDependency 속성. 기본값은 Control의 각 하위 클래스에서 재정의됩니다.

리소스 사전의 이름은 현재 Windows 테마에 따라 달라집니다. 예를 들어 Vista에서 Aero 테마를 사용하는 경우 사전의 이름은 Aero입니다.기본 테마를 사용하는 XP에서는 NormalColor.xaml이 Luna입니다.NormalColor.xaml.테마 사전에서 스타일을 찾을 수 없는 경우 Generic.xaml에서 테마에 따라 모양이 달라지지 않는 컨트롤을 찾습니다.

이는 사용자가 정의한 사용자 정의 컨트롤(즉, Control에서 직접 또는 간접적으로 파생된 클래스)에만 적용됩니다.표준 컨트롤에서 파생하여 호출하여 표준 컨트롤의 기본 스타일을 변경할 수 있습니다.DefaultStyleKeyProperty.OverrideMetadata이 경우 ControlTemplate를 포함한 풀 스타일을 제공해야 합니다.

TemeInfo 속성을 사용하면 외부 어셈블리에서 기본 스타일을 검색하도록 WPF에 지시할 수 있습니다.외부 어셈블리의 이름을 지정해야 합니다.<조립품>.<테마명>.discloss (예:Presentation Framework.Aero.dll.

generic.xaml파일(대문자와 소문자를 구분하지 않음)이 특별한 경우 다음 두 가지 조건을 충족해야 합니다.

  • 프로젝트의 테마 하위 루트 폴더에 있어야 합니다.
  • 에는 반드시 '부재하다'라는가 있어야 .ThemeInfoAttribute (에)AssemblyInfo.cs)

그런 다음 컨트롤에 적용하려는 기본 스타일에 대한 기본 조회 위치 역할을 합니다.또한 스타일을 기본값으로 하려면 TargetType과 x:Key를 스타일링할 컨트롤 유형으로 선언해야 합니다.

일부 코딩에 의해 실행되는 전체 테마 및 테마 전환을 응용 프로그램에 추가할 경우 이 기술은 기본 리소스 사전을 정의하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/1228875/what-is-so-special-about-generic-xaml

반응형