Ничего подобного не видел, так что ... мое очень простое решение:
#!/bin/bash
BAR='####################' # this is full bar, mine is 20 chars
for i in {1..20}; do
echo -ne "\r${BAR:0:$i}" # print $i chars of $BAR from 0 position
sleep .1
done
echo -n
- печатать без новой строки в конце echo -e
- интерпретировать специальные символы при печати "\r"
- возврат каретки, специальный символ для возврата в начало строки Я использовал его давным-давно в простом «взломе» видео "для имитации набора текста. ;)
Wrote about it some time ago on my blog:
This will tell you how to get WPF to use the right culture:
This will change the WPF culture on the fly when you modify the settings in the control panel:
вы можете использовать IValueConverter (который принимает параметр культуры) и форматировать значение по своему усмотрению. Мне нравится этот конвертер с нулевым значением от Мэтта Гамильтона
class NullableDateTimeConverter : ValidationRule, IValueConverter
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
if (value == null || value.ToString().Trim().Length == 0) return null;
return new ValidationResult(
ConvertBack(value, typeof(DateTime?), null, cultureInfo) != DependencyProperty.UnsetValue,
"Please enter a valid date, or leave this value blank");
}
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null) return "";
DateTime? dt = value as DateTime?;
if (dt.HasValue)
{
return parameter == null ? dt.Value.ToString() : dt.Value.ToString(parameter.ToString());
}
return "";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || value.ToString().Trim().Length == 0) return null;
string s = value.ToString();
if (s.CompareTo("today") == 0) return DateTime.Today;
if (s.CompareTo("now") == 0) return DateTime.Now;
if (s.CompareTo("yesterday") == 0) return DateTime.Today.AddDays(-1);
if (s.CompareTo("tomorrow") == 0) return DateTime.Today.AddDays(1);
DateTime dt;
if (DateTime.TryParse(value.ToString(), out dt)) return dt;
return DependencyProperty.UnsetValue;
}
#endregion
}
вот original