3 개의 슬라이더 컨트롤을 겹쳐서 "범위 슬라이더"를 만듭니다. 기본 개념은 여기에서 두 개의 슬라이더를 사용합니다.슬라이더의 썸을 찾아 폭을 설정하는 방법
난 그의 엄지 다른 슬라이더의 엄지 손가락 사이의 공간을 채울 제 슬라이더를 추가하고있다. 사용자는이 가운데 엄지 손가락을 드래그하여 두 끝을 이동하고 두 끝 사이에 일정한 간격을 유지할 수 있습니다.
XAML은 단순히 세 개의 슬라이더입니다. 레이어를 멋지게 꾸미는 비법은 컨트롤 템플릿을 사용하는 것입니다 (여기에서 다시 만들지는 않습니다. 위 URL에서 찾을 수 있습니다). 중 외부 엄지 손가락 드래그로
<Grid VerticalAlignment="Top">
<Border BorderThickness="0,1,0,0" BorderBrush="Green" VerticalAlignment="Center" Height="1"
Margin="5,0,5,0"/>
<Slider x:Name="LowerSlider"
Minimum="{Binding ElementName=root, Path=Minimum}"
Maximum="{Binding ElementName=root, Path=Maximum}"
Value="{Binding ElementName=root, Path=LowerValue, Mode=TwoWay}"
Margin="0,0,0,0"
Template="{StaticResource simpleSlider}"
/>
<Slider x:Name="MiddleSlider"
Minimum="{Binding ElementName=root, Path=Minimum}"
Maximum="{Binding ElementName=root, Path=Maximum}"
Value="{Binding ElementName=root, Path=MiddleValue, Mode=TwoWay}"
Margin="10,0,0,0"
Template="{StaticResource simpleSlider}"
>
</Slider>
<Slider x:Name="UpperSlider"
Minimum="{Binding ElementName=root, Path=Minimum}"
Maximum="{Binding ElementName=root, Path=Maximum}"
Value="{Binding ElementName=root, Path=UpperValue, Mode=TwoWay}"
Margin="20,0,0,0"
Template="{StaticResource simpleSlider}"
/>
</Grid>
, 나는이 말의 엄지 손가락 사이의 공간을 채우기 위해 중앙 엄지 손가락 크기를 조정해야합니다.
코드 뒤에서는 엄지 손가락의 움직임을 잡을 수 있습니다. 중간 슬라이더 컨트롤을 찾을 수는 있지만 프로그래밍 방식으로 중간 슬라이더의 엄지 손가락으로 이동하여 크기를 조절할 수있는 방법을 알 수는 없습니다 두 개의 엄지 손가락 사이의 공간을 채 웁니다.
private void UpperSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Slider slider= (Slider) this.FindName("MiddleSlider");
// how to find the middleSlider thumb so I can set
// it's width to fill the space between the outer thumbs
}
어떤 아이디어 주셔서 감사합니다,
미치
감사합니다. @ H.B. 그것이 내가 놓친 개념이다. 미래의 독자를위한 예제를 완성하기 위해, 엄지 손가락도 템플리트 화되어 있으므로 동일한 방식으로 표현을 검색해야했습니다. – Mitch
너비 만 설정하고 싶다고 생각했는데? 그 엄지의 템플릿으로 다이빙없이 가능해야합니다. 어쨌든, 귀하의 질문에 대한 답변이 있다면 내 대답의 왼쪽에있는 체크 표시 개요를 사용하여 동의 할 수 있습니다. –
엄지 손가락 폭이 증가함에 따라 엄지가 왼쪽과 오른쪽으로 이동하는 픽셀 수가 감소하기 때문에 두 개의 외측 엄지 손가락 사이의 간격을 채우는 가운데 가운데 엄지 손가락의 너비를 계산하는 것은 복잡합니다. 이는 엄지 손가락의 왼쪽 가장자리가 컨트롤의 왼쪽 가장자리에 도달 할 때 슬라이더가 엄지 손가락을 멈추게하기 때문입니다. 엄지가 더 넓 으면 엄지의 중심이 바뀝니다. 해결 방법은 두 개의 외부 엄지 손가락의 위치를 픽셀 단위로 계산 한 다음 슬라이더를 계산하는 것입니다. 값은 두 개의 외부 엄지 손가락 사이에 가운데 엄지 손가락을 배치합니다. – Mitch