2011-09-26 3 views

답변

0

편집 : 제 대답은 Slider 컨트롤을위한 것으로, 원래 게시물 인 DataBinding 또는 ElementBinding + a Converter 에서처럼 쉽게 ProgressBar 컨트롤에 적용 할 수 있습니다.


완벽한 해결책은 아니지만 볼륨 바에 대해이를 달성하기 위해 Binding + 사용자 지정 변환기를 사용했습니다. 내 볼륨 막대는 8 개의 벽돌로 이루어져 있는데, 제 경우에는 비활성 용, 활성 용의 두 가지 색상을 가진 사각형을 사용합니다. 당신은 가시성을 토글하는 이미지와 변환기로 그것을 대체 할 수 있습니다.

<Grid> 
    <StackPanel Orientation="Horizontal"> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.0, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.125, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.25, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.375, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.5, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.625, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.75, Converter={StaticResource VolumeToColor}}" /> 
     <Rectangle Fill="{Binding Volume, ConverterParameter=0.875, Converter={StaticResource VolumeToColor}}" /> 
    </StackPanel> 
    <Slider Maximum="1" LargeChange="0.25" SmallChange="0.1" Value="{Binding Volume, Mode=TwoWay}" Opacity="0" Height="10" /> 
</Grid> 

나는 기본 슬라이더 템플릿을 복사하고 슬라이더의 값에 TemplateBinding을 사용하여 혼합을 사용하여 훨씬 더 할 수있는 확신한다.

현재, Slider의 값에 대한 데이터 바인딩을 사용하지 않으면 ElementBinding을 사용하여 막대의 요소에 대한 값을 가져올 수 있습니다.