2011-08-10 4 views
4

큰 ItemsControl 템플릿을 정의하는 WPF에서 사용자 지정 컨트롤이 있습니다. 거기에 그리드가 있고 그리드의 한 열에 TextBlock이 있고 다른 열에는 테두리가 있습니다.테두리를 설정하는 TextBlock의 EventTrigger - 모든 속성 참조를 확인할 수 없음

마우스가 TextBlock에 들어갈 때 테두리를 강조 표시하려고합니다.

나는 몇 가지 시나리오 시도 : 첫 번째 TextBlock을의 스타일에 EventTrigger,하지만 난 당신이 TextBlock의의 트리거 섹션에서, 다음 EventTrigger을 할 수 없어 배웠습니다, 지금은 단지의 DataTemplate.Triggers에 넣어 내 ItemsControl에,하지만 난 오류가 계속 : 원인이되는 코드는 여기에

"Cannot resolve all property references in the property path 'Border.BorderBrush.Color'. Verify that applicable objects support the properties." 

입니다 문제 :

<DataTemplate.Triggers> 
    <EventTrigger SourceName="mytxtblock" RoutedEvent="TextBlock.MouseEnter"> 
     <EventTrigger.Actions> 
      <BeginStoryboard> 
       <Storyboard> 
        <ColorAnimation Storyboard.TargetName="myborder" 
               Storyboard.TargetProperty="Border.BorderBrush.Color" 
               Duration="0:0:1"                   
               To="White" /> 
        <ThicknessAnimation Storyboard.TargetProperty="Border.BorderThickness" 
                Duration="0:0:1" 
                From="0" 
                To="1" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger.Actions> 
    </EventTrigger> 
</DataTemplate.Triggers> 

나는 내가의 컬러 속성을 참조하는 방식에 대해 뭔가를 놓친 것 같아 내 보즈 어, 어떤 통찰력?

감사합니다.

편집 : 나는, 그 값을 사용하여 다음 ResourcesSolidColorBrush를 선언하고하는 것은 나를 Storyboard.TargetProperty="Border.BorderBrush"에 변화

Storyboard.TargetProperty="Border.BorderBrush.Color"을 제거 할 수 있다는

을 생각하지만 지금 컴파일러는 것을 알려줍니다 내가 그린 (내가 그린과 투명하게 시도) 색상이 "To"에 유효한 값이 아닌 ...

답변

4

<ColorAnimation 
    Storyboard.TargetName="myborder" 
    Storyboard.TargetProperty="BorderBrush.(SolidColorBrush.Color)" 
    Duration="0:0:1" 
    To="White" /> 

시도하지만 당신은 BorderBrush

BorderBrush="whatever" 

또는 "myborder"에서

<Border.BorderBrush> 
    <SolidColorBrush Color="whatever" /> 
</Border.BorderBrush> 

도를 선언해야합니다.

+0

'BorderBrush'속성이 'BorderBrush. (0)'경로의 DependencyObject를 가리 키지 않는 예외가 발생합니다. –

+0

나는 나의 대답을 편집했다. – LPL

+0

나는 WPF 바인딩 경로를 사용하지 않을 수도 있지만 "BorderBrush (SolidColorBrush.Color)"는 내 UserControl의 테두리에서 작동하므로 감사합니다! – Jon

0

귀하의 ColorAnimation에 두 가지 속성이 있습니다 :

Storyboard.TargetName="myborder" 
Storyboard.TargetProperty="Border.BorderBrush.Color" 

myborder에는 Border이라는 속성이 있습니다. 그게 네 잘못을 일으키는 것 같아.

관련 문제