내 ResourceDictionary 파일을 다시 사용하고 팀의 다른 구성원과 공유 할 수 있도록 구성하는 방법을 알아 내려고 노력하고 있습니다.
"Generic.xaml"이 계속 표시되지만 MSDN에서 Generic.xaml을 찾거나 Google 검색 만 수행하면 블로그 게시물과 포럼 질문 만 나오는 것 같습니다. 정말 권위 있고 분명한 것에 부딪 혔습니다.
Generic.xaml과 MyRandomlyNamedResourceDictionary.xaml의 차이점은 무엇입니까? 어느 쪽이든 Source 속성을 사용하여 라이브러리에 저장된 ResourceDictionaries를 참조해야합니다. 예 :
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>
그렇다면 Generic.xaml은 정확히 어떤 이점을 제공합니까? 응용 프로그램에 여러 "모양"을 제공하지 않는 경우 (예 : 테마가 하나만있는 경우) 목적이 있습니까?
WPF의 모든 컨트롤에는 컨트롤의 기본값을 제공하는 기본 스타일이 ControlTemplate
있습니다. WPF는 컨트롤과 동일한 어셈블리의 Themes 폴더에있는 특수 리소스 사전에서 기본 스타일을 찾습니다. 기본 스타일에 대한 키는 Control.DefaultStyleKey
종속성 속성에 의해 제공되며 기본값은 Control의 각 하위 클래스에서 재정의됩니다.
리소스 사전의 이름은 현재 Windows 테마에 따라 다릅니다 (예 : Aero 테마를 사용하는 Vista에서 사전은 Aero.NormalColor.xaml, XP에서 기본 테마를 사용하는 Luna.NormalColor.xaml). 스타일이 테마 사전에서 발견되지 않으면 Generic.xaml 즉, 모양이 테마에 의존하지 않는 컨트롤을 찾습니다.
이것은 직접 또는 간접적으로 정의한 모든 사용자 지정 컨트롤, 즉 Control에서 파생 된 클래스에만 적용됩니다. 표준 컨트롤에서 파생되고 DefaultStyleKeyProperty.OverrideMetadata
정적 생성자를 호출하여 표준 컨트롤의 기본 스타일을 변경할 수 있지만 그런 다음 ControlTemplate을 포함한 전체 스타일을 제공해야합니다.
ThemeInfo 특성을 사용하여 기본 스타일에 대한 외부 어셈블리를 찾도록 WPF에 지시 할 수 있습니다. 외부 어셈블리의 이름은 <
YourAssembly 여야합니다 >
. <
ThemeName >
.dll (예 : PresententationFramework.Aero.dll)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다