안녕하세요.
WPF 사용자 지정 컨트롤을 만들 때 자동으로 생성되는 DefaultStyleKeyProperty 부분에 대해 질문 드립니다.
static 생성자 부분:
public class JamesPanel : ContentControl
{
static JamesPanel()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(JamesPanel),
new FrameworkPropertyMetadata(typeof(JamesPanel)));
}
}
CustomControl을 생성하면 static 생성자에 작성된 코드와 Generic.xaml 파일을 보게되는데요.
이 부분에 대해 정확히 이해하지 못한체로 모두 제거하고나서 따로 App.xaml에 Style을 만들어 사용하고 있습니다.
궁금한 점:
1. Application 어디에도 등록되어있지 않은 Generic.xaml 파일은 약속된 위치일까요?
Appplication 어디에서도 Resource를 등록하지 않았음에도 불구하고 연결되어 있습니다.
2. 정적(static) 생성자가 아닌 인스턴스 생성자에서 DefaultStyleKey 속성을 설정하는 것과 어떤 차이가 있을까요?
3. 정적 생성자에서 DefaultStyleKeyProperty.OverrideMetadata() 호출 시 어떻게 Generic.xaml 파일이 리소스에 등록되는 건지 궁금합니다.
4. 마지막으로, 자동으로 생성되는 이 규칙을 지키는 것이 좋은 방식인가요?
지금까지 제가 만들어왔던 구조에서는 한번도 이 방식을 사용하지 않았지만 이번 기회에 더 이해하고 적용해 보고자 합니다.
설명이 부족한 점 죄송합니다.
읽어주셔서 감사합니다.