0

버튼 안에 사용자 정의 컨트롤이 있습니다. 컨트롤의 템플릿에는 직사각형과 텍스트 블록이 있습니다. 버튼을 누르면 텍스트의 색상이 변경되도록 텍스트 블록으로 전달되는 버튼의 "(Button.Foreground). (SolidColorBrush.Color)"속성이 활성화됩니다.사각형을 채우는 색상을 전경색으로 채우기

어떻게 동일한 브러시에 사각형의 채우기 속성을 설정할 수 있습니까?

"{Binding Path = Foreground, RelativeSource Self}}"이라는 바인딩 시도를 시도하고 코드에서 OnApplyTemplate의 바인딩을 만들 수도 있습니다. 전혀 작동하지 않거나 처음에는 설정된 색상이 애니메이션으로 표시되지 않습니다. 또한 요소 바인딩을 사용하여 사각형의 채우기 속성을 TextBlock의 Foreground 속성에 바인딩했습니다. 동일한 결과 (초기 색상은 색상이 다른 반면 애니메이션은 다릅니다).

미리 감사드립니다.

답변

0

WP 7.1의 버그 일 수 있습니다.

해결 방법을 찾았습니다. 그것을 모든 작업을하려면 : 사용자 정의 컨트롤 템플릿에서

  • <VisualState x:Name="Normal"> 내부, 정상 상태의 전경색을 설정, 버튼 템플릿에서
  • Fill="{TemplateBinding Foreground}"를 지정합니다. 비주얼 상태 매니저가 전경 값을 애니메이션 할 때

초기 전경 값이 버튼의 스타일로 <Setter Property="Foreground" ...에서 온다, TextBlock의 객체는 그러나 <Rectangle Fill="{TemplateBinding Foreground}" 이전 색으로 칠해진 상태로 유지 새로운 값을받을 수 있습니다.

시각 상태 관리자에서 초기 값을 가져온 경우 VSM이 색상 변경을 애니메이션하므로 사용자 지정 컨트롤 템플릿 내의 사각형에 새 속성 값이 올바르게 수신됩니다.

+0

어떤 이유로 버튼 템플릿 내에서 제대로 작동하지만 ListBox 항목 템플릿 내에서 작동하지 않습니다 .-(( – Soonts

관련 문제