2011-04-25 6 views

답변

1

마지막으로 내가 이런 식으로 내 문제를 해결 당신을 도움이 될 것입니다 을 내가 TextBlock의 컨트롤을 사용하고 MediaElement에 컨트롤의 속성을 위치에 텍스트 속성을 결합, 그럼 내가 적절한 시간을 표시 할 IvalueConverter를 사용 TextBlock :

<TextBlock MinWidth="40" Text="{Binding ElementName=myMediaElement, Path=Position, Converter={StaticResource TimeConverterFormatter}}"/> 

TimeConverterFormatter는 TimeSpan 값을 짧은 시간 형식으로 변환하는 클래스입니다. MediaElement에에서 위치 속성에 같은 시간 범위의 값을 보여 있기 때문에 ": 00 : 00 : 0 00.0000000를"나는 이것과 같은 경과 시간 값을 원하는 : "0시"

public class TimeConverterFormatter : IValueConverter 
{ 
    #region IValueConverter Members 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value.ToString().Length == 16) 
      return value.ToString().Substring(3, 2) + ":" + value.ToString().Substring(6, 2); 

     return value.ToString(); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 

    #endregion 
} 
1

나는이 오래된 질문은 실현 난 당신이 시간과 분 분, 초를 원 여부를 작동하지 수

<TextBlock Text="{Binding Position, ElementName=myMediaElement, 
    StringFormat={}{0:hh}:{0:mm}, FallbackValue=00:00, Mode=OneWay}" /> 

, 그래서 여기 후자 : 지금,하지만 WPF에 당신은 당신이 원하는 것을 할 수있는 일반 StringFormat을 사용할 수 있습니다

<TextBlock Text="{Binding Position, ElementName=myMediaElement, 
    StringFormat={}{0:mm}:{0:ss}, FallbackValue=00:00, Mode=OneWay}" /> 

Silverlight에서 작동한다는 보장 할 수는 없지만.

+0

다소 효과가있었습니다. –

0

Silverlight는 확실하지 않지만 mm : ss로 표시되어야합니다.

lblLength.Content = String.Format("{0:mm}:{0:ss}", mediaElement.Position); 
관련 문제