2011-08-11 3 views
0

예를 들어 WPF를 사용하고 있습니다. 우리가 contol X를 가지고 있다고 가정하고, 배경을 이미지로 설정합니다. 그런 다음 마우스 오버시 배경 이미지가 없어지기를 원합니다. 이것은 x : Null로 얻을 수 있습니다. 그러나 x : Null을 지정하지 않으면 동일한 이미지가 유지됩니다.WPF 속성 및 x : Null 등

WPF를 지원하지 않는 platfrom 용 사용자 정의 스킨 엔진을 만들려고합니다. 이 동작을 재현하는 방법을 알아 내려고 노력 중입니다. 문제는 만약 내가 클래스 XControlStyle 및 정상 상태에 대한 하나 및 mouseover에 대한이 클래스의 두 인스턴스를 가지고 그때 내가 wpf에서 무엇을 달성하기 위해 분명하지 않습니다 ..

예를 들어 설정 mouseover.Backgroundimage = null은 사용자가 null로 설정했는지 또는 기본적으로 null인지 여부를 알려주지 않습니다.이 문제는 값 유형으로 더 나쁩니다. 모든 속성을 두 번 설정하는 것은 우아한 솔루션이 아닙니다. 또한 BackgroundImage를 만들기 위해 솔루션을 필요로합니다. 나는 결코 해결책을 찾지 못했습니다. 나는 3 개의 솔루션을 (속성, 저장을위한 사전 클래스, 클래스 래퍼에 속성 값을 래핑하여) 알아 냈습니다.하지만 마지막으로 구현 한 것은 만족스럽지 않습니다.
영감을 얻으려는 MSDN 설명서 읽기 나는이 데이터를 어떻게 든 메타 데이터로 저장한다고 생각하십니까? 그래서 메타 데이터가 내 문제의 해결 방법인지 궁금해합니다. 아이디어가 있습니까?

답변

0

이러한 것들은 dependency property value precedence을 통해 이루어지며 값 검색 시스템이 있으며 가장 높은 우선 순위를 가진 값이 선택됩니다. 의존성 속성 자체는 사전과 같으며 여러 계층에 여러 가지가 있습니다 (예 : 요소 자체와 스타일 이 시스템은 매우 복잡하고 나는 그것을 재현하는 것이 자신의 거대한 프로젝트라고 주장 할 것입니다.