두 개의 텍스트 색 인 ColorA와 ColorB로 사용자 지정 컨트롤을 만듭니다. ColorA는 컨트롤의 Foreground
속성에 연결되며 ColorB는 ForegroundAlt
이라는 사용자 지정 종속성 속성에 연결됩니다. 두 속성 모두 Brush
개체입니다.XAML : 브러시를 색으로 변환 하시겠습니까?
<SolidColorBrush x:Key="BrushA" Color="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" />
<SolidColorBrush x:Key="BrushB" Color="{Binding Path=ForegroundAlt, RelativeSource={RelativeSource TemplatedParent}}" />
내가 컨트롤 템플릿에 두 색상 간의 중소 텍스트 애니메이션을해야하고, 내가 문제로 실행하고 곳이다 : 컨트롤의 XAML이 마크 업을 사용하여 속성 값을 가져옵니다.
To="{Binding Source={StaticResource BrushB}, Path=Color}"
를하지만 여기에 작동하지 않습니다
일반적으로, 단순히 같은 각 Brush.Color 속성에 데이터 바인딩을 만들 것입니다. you can't use bindings on an animation inside a control template으로 밝혀졌습니다.
해결 방법으로, 나는 브러시 자원과 함께 갈 Color
자원의 쌍을 만들고 싶습니다 :
<Color x:Key="ColorA" ??? />
<Color x:Key="ColorB" ??? />
각 Color
자원이 해당 브러시의 색상이 있어야합니다. 그런 다음 색상을 정적 리소스로 참조하고 애니메이션 내에서 데이터를 바인딩하지 않아도됩니다.
그래서, 여기 내 질문은 :
- 어떻게 Color
자원을 선언 할 것인가?
- 작업을 완료하는 간단한 방법이 있습니까?
도움 주셔서 감사합니다.
나는 애니메이션 내에서 데이터 바인딩을 사용하지 않는 한 작동 할 것이라고 생각합니다. 그러나 저는 두 번째 자원을 피하는 더 나은 접근 방법을 연구 중입니다. 작동한다면 여기에 올리겠습니다. –