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.DefaultStyleKey
Dependency 속성. 기본값은 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
'programing' 카테고리의 다른 글
Excel 워크북의 모든 워크시트를 data.frames와 함께 R 목록으로 읽습니다. (0) | 2023.04.17 |
---|---|
Bash 변수 할당에서 명령을 찾을 수 없음 오류 (0) | 2023.04.17 |
SQL Server에서의 이스케이프 문자 (0) | 2023.04.17 |
.gitignore 파일 작성 방법 (0) | 2023.04.17 |
워크시트 클래스의 ShowAllData 메서드가 실패했습니다. (0) | 2023.04.17 |