2012-04-19 2 views
3

저는 Windows phone 7 앱을 만들고 슬라이더에 넣었습니다. 1에서 시작하여 80에서 끝납니다. 슬라이더를 멈 추면 슬라이더가 텍스트 블록에있는 모든 값을 표시합니다. (누군가가 중간에 멈추는 경우처럼 텍스트 블록이 40이라고 말합니다)슬라이더의 값을 텍스트 블록에 표시 하시겠습니까?

답변

14

가장 쉬운은 Textblocks 텍스트에 슬라이더 값 속성을 바인딩하는 것 속성을 변경하고 값이 변경 될 때마다 값을 업데이트합니다. 슬라이더 값이 두 배이기 때문에 변환기를 만들 수도 있습니다. 변환기를 사용하면이 값을 Int로 변환 할 수도 있습니다.

Text="{Binding ElementName=YourSlider,Path=Value}" 
+1

이것은 가장 깨끗한 해결책입니다. 십진수가 귀찮다면 숫자를 반올림하는 것보다 변환기를 작성하십시오. –

+3

@ Kasper : Binding.StringFormat은 여기의 변환기보다 낫다고 생각합니다. –

+1

@ alpha-mouse 절대로 Binding.StringFormat을 사용하지 않았지만 작동하면 변환기가 더 좋고 더 간단합니다. :) – BigL

3

슬라이더를 드래그/변경하는 것을 중지 한 후 시작된 이벤트에서 Slider.Value.ToString()으로 TextBlock.Text를 설정하기 만하면됩니다. 당신이 원하는 경우

은 또한 Math.Round()로 값을 줄일 수 있습니다 : 당신은 슬라이더에 대한의 valueChanged 이벤트를 확인해야

TextBlock.Text = Math.Round(Slider.Value, [Number of Decimals]).ToString() 

감사 크리스

+1

이것은 특별한 좋은 해결책이 아닙니다. XAML에서 제공하는 바인딩 기능을 활용하지 않습니다. –

0

(이 같은) >

-

private void ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
{ 

} 

그런 다음 해당 이벤트에, 당신은 텍스트 상자의 텍스트를 설정할 수 있습니다

textbox1.Text = silder1.Value.ToString(); 

매번 슬라이더 변경 이벤트가 발생하므로이 도움이

희망 aswell 텍스트 상자 변경,

바트

+0

안녕하세요, 고맙습니다. 많은 사람이 있지만 "NullReferenceException 처리되지 않았습니다"오류가 발생합니다. 어떤 생각을 해야할지? 감사합니다, – Lavi

+0

위에서 언급 한 작업을 수행 할 코드 조각을 게시 할 수 있습니까? –

+0

'개인 무효 slider1_ValueChanged (개체 보낸 사람, RoutedPropertyChangedEventArgs 전자) { slidertext.Text = slider1.Value.ToString(); } – Lavi

0

는 '바트 Teunissen'대답은 아주 좋은 것입니다하지만 단순한 검사를 추가 중 하나에 OldValue 사용할 수 있거나, 그것은 완벽하게 작동하지.

private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
{ 
    if(slider.OldValue != null) 
    { 
     textbox1.Text = silder1.Value.ToString(); 
    } 
} 

희망이 도움이됩니다.

관련 문제