나는 주된 이유는 봉인 된 물건이라고 생각합니다. 스타일 계층 구조가있는 경우 :
Style A
/ \
Style A1 Style A2
이것은 어려운 시나리오는 아닙니다. StyleA
은 동적 리소스를 사용하므로 해당 리소스가 변경 될 때마다 Style A1
및 Style A2
은 BasedOn
속성을 변경해야합니다. 그러나 일단 응용 프로그램에서 스타일을 사용하면 봉인 된 객체가됩니다. Style A
은 변경 불가능합니다. 당신이 사용할 수있는
한 가지 해결 방법은 다음과 같습니다
Style A
변경해야합니다.
- 새로운
Style A
리소스가 될 새 Style 개체를 만듭니다.
Style A1
및 Style A2
의 새 버전을 만드십시오. Setters
, Resources
등을 모두 복사하는 복사 절차를 작성해야합니다. BasedOn
을 Style A
의 새 버전으로 설정하십시오.
- 리소스 컬렉션을 업데이트하여 세 가지 새로운 스타일이 존재하도록하십시오.
{DynamicResource StyleA1}
및 {DynamicResource StyleA2}
이제 그 자원 (4 단계) 변경하고 자동으로 참조를 업데이트한다는 사실을 선택해야합니다.
매우 간단한 시나리오입니다. 실제 스타일 계층 구조는 더욱 복잡 할 수 있습니다. 특히 여러 파일에 분산되어 있고 병합 된 사전에있는 경우 더욱 그렇습니다.
희망 귀하의 문제를 이해하고 도움을 주셨습니다.
이 시나리오는 어떻습니까? 다른 (Ux) 팀이 기본 스타일을 만듭니다 ... 개발자가 기본 스타일 외에도 몇 가지 속성을 설정하려고합니다.이상적으로 이것은 DevStyle BasedOn "DynamicResource UxStyle"이 도움이 될 수있는 시나리오입니다. 이것이 가능하지 않은 경우 컨트롤에 적용하기 전에 두 스타일을 병합하는 대안은 무엇입니까? – Gishu