2014-07-24 1 views
4
에 레이블의 가시성을 결합

난에서 ScrollViewer를 가지고, 그것은 세로로만 스크롤, 그리고 그것을 만 필요로하는 경우 세로 스크롤 막대를 보여줍니다는 WPF가있는 ScrollViewer의 ComputedVerticalScrollBarVisibility

<ScrollViewer x:Name="sv" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto"> 

나는 또한 레이블을 가지고있는 나는 단지 ScrollViewer의 세로 스크롤 막대가 표시되는지 확인하려면 :

<Label Background="DarkBlue" Height="60" Width="70"> 
      <Label.Style> 
       <Style TargetType="Label"> 
        <Setter Property="Visibility" Value="Visible"/> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding ComputedVerticalScrollBarVisibility.Visibility, ElementName=sv}" Value="Hidden"> 
          <Setter Property="Visibility" Value="Hidden"/> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </Label.Style> 
</Label> 

이 방법은 효과가없는 것 같습니다. 나는 해결책을 찾았는데, 보통은 매우 빨리 발견되어 이것이 나의 첫 번째 게시물이된다. 이 작업을 수행하는 방법에 대한 제안 사항은 무엇입니까? 나는 xaml만의 해결책을 선호 하겠지만 변환기와 무의미한 것을 사용하도록 확신 할 수있다.

답변

5

먼저 ComputedVerticalScrollBarVisibility 속성은 유형 Visibility이다. 그래서 ComputedVerticalScrollBarVisibility 속성 만 사용하고 ComputedVerticalScrollBarVisibility 속성을 사용하여 바인딩하지 않아야합니다 .Visibility.

<DataTrigger Binding="{Binding ComputedVerticalScrollBarVisibility, 
           ElementName=sv}" Value="Collapsed"> 
    <Setter Property="Visibility" Value="Hidden"/> 
</DataTrigger> 
+1

이 완전히 일 : Value이에 Collapsed하지 Hidden


업데이트 트리거 될 것입니다

둘째,. 이것 대단히 고마워. 나는 다른 사람들도이 점을 유용하게 생각하기를 바랍니다. – CornishCoder