Pour augmenter les valeurs, utilisez une classe qui implémente un IValueConverter
, qui est décrit ici:
http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx
En substance, une classe qui implémente IValueConverter
va intercaler le value
dans une méthode appelée Convert
. La valeur que vous renvoyez de cette méthode est la valeur que vous voulez vraiment afficher. Considérez:
espace de noms
de Sharp {
public class MyConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
// First cast the value to an 'int'.
Int32 theInputtedValue = (Int32)value;
// Then return the newly formatted string.
return String.Format("{0}% Completed", theInputtedValue);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}
}
Avis dans l'exemple ci-dessus le convertisseur de valeur est dans l'espace de noms Sharp
. Maintenant, nous ajoutons ceci à la définition XAML:
<Window x:Class="Sharp.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:lol="clr-namespace:Sharp">
La dernière ligne est l'espace de noms où notre convertisseur de valeur existe (c'est lol
va maintenant pointer vers le Sharp
CLR-espace de noms
Ensuite, nous ajoutons le. classe à nos Window
ressources.
<Window.Resources>
<lol:MyConverter x:Key="TheValueConverter" />
</Window.Resources>
cela crée une instance de la classe que vous pouvez utiliser dans le XAML Ainsi, jusqu'à présent notre XAML ressemble à ceci:
<Window x:Class="Sharp.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:lol="clr-namespace:Sharp">
<Window.Resources>
<lol:MyConverter x:Key="TheValueConverter" />
</Window.Resources>
Maintenant, nous ajoutons simplement à votre présentateur de contenu comme ceci:
<ContentPresenter Content="{TemplateBinding Value, Converter={StaticResource TheValueConverter}}" ... />
Cela indique au ContentPresenter
que quand il va présenter la valeur, il doit utiliser l'instance TheValueConverter
, qui est une instance de notre ValueConverter
. Deux choses à faire attention: (1) Assurez-vous que vous utilisez le nom de l'instance (TheValueConverter
) et non la classe définition (MyConverter
). (2) Assurez-vous d'entourer le nom de l'instance au {StaticResource}
.
S'il vous plaît vérifier ce lien ci-joint que j'ai téléchargé échantillon .. dropbox.com/s/2nro23mm0oecknk/Progress%20Bar.zip S'il vous plaît mettre à jour – Rocky111