由於操作是不可能在XAML因此轉換器是相同
我想爲你寫一個簡單的代碼的方法,使用字符串格式%的通知StringFormat={}{0:P0}
XAML例如
<StackPanel>
<StackPanel.Resources>
<l:ScaleConverter x:Key="ScaleConverter"/>
</StackPanel.Resources>
<Slider x:Name="calculationSource" Maximum="10000"/>
<TextBlock Text="{Binding ElementName=calculationSource,
Path=Value, StringFormat={}{0:P0},
Converter={StaticResource ScaleConverter},
ConverterParameter=10000}" />
</StackPanel>
我用滑塊代替進度條進行簡單演示,你可以使用任何來源
指定轉換參數
和P0字符串格式是指用0精度例如0%百分比格式,你可以選擇讓P1的1位小數等如0.0%
轉換器的最大值class
class ScaleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return System.Convert.ToDouble(value)/System.Convert.ToDouble(parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
轉換器非常簡單,將值除以定義的比例。
我希望你會發現它對於您的問題
額外
另外有用的,如果你喜歡定義在單個位置的最大範圍內,您可以使用資源,爲相同的
<StackPanel>
<StackPanel.Resources>
<l:ScaleConverter x:Key="ScaleConverter"/>
<sys:Double x:Key="maxRange">10000</sys:Double>
</StackPanel.Resources>
<Slider x:Name="calculationSource" Maximum="{StaticResource maxRange}"/>
<TextBlock Text="{Binding ElementName=calculationSource,
Path=Value, StringFormat={}{0:P0},
Converter={StaticResource ScaleConverter},
ConverterParameter={StaticResource maxRange}}" />
</StackPanel>
XAML中不執行計算;該功能通過轉換器或屬性綁定執行。 –