2010-03-16 6 views
5

Ich habe eine Beschriftung an den Wert eines Schiebereglers gebunden.XAML: Wie füge ich ein Prozent-Symbol an einen gebundenen Label-Wert an?

Content="{Binding Path=Value, ElementName=Slider}" 

Wie füge ich ein Prozentzeichen hinzu? Der Wert des Schiebereglers ist bereits korrekt formatiert. Wenn der Wert also '50' ist, benötige ich nur '50% '.

Ich weiß, wie es in Code hinter zu tun, aber ich hatte gehofft, dies in Xaml zu erreichen, ohne einen Konverter zu erstellen. TIA

Antwort

15

Dies funktioniert gut für mich (in Kaxaml getestet):

<StackPanel> 
    <Slider Minimum="0" Maximum="100" x:Name="slider" /> 
    <TextBlock Text="{Binding Path=Value, ElementName=slider, StringFormat='\{0\}%'}" /> 
</StackPanel> 

Ohne die Schrägstriche ich einen Fehler bekam sagen, dass das Zeichen% war ungültig in dieser Position.

+0

Danke Dan, versuchte es in VS und auch kein Glück. – Brad

+0

Ich habe das Etikett in einen TextBlock geändert und es funktioniert. Ich werde untersuchen, warum ein Etikett Formatierung nicht erlaubt. Vielen Dank! – Brad

1

können Sie String wie

so verwenden
Content="{Binding Path=Value, ElementName=Slider, StringFormat='{0}%'}" 
+0

Danke Chris. Ich habe das (und viele andere Konfigurationen) ohne Glück versucht. Irgendwelche Gedanken was passieren könnte? – Brad

+0

Das funktioniert definitiv so, wie ich es selbst benutzt habe ... Welchen Fehler bekommst du? Was wird tatsächlich auf den Bildschirm gedruckt? – Chris

+0

Kein Fehler, es zeigt einfach die Ziffern. dh. '50' Das Label hat keine anderen Eigenschaften. – Brad

1

Hier ist die Lösung für WPF> = 3.5 SP1:

<Label Content="{Binding Path=Value, ElementName=Slider}" 
     ContentStringFormat="{0}%" /> 
+0

sollte es nicht 'ContentStringFormat =" {} {0}% "'? –

5

String kann

Content="{Binding Path=Value, ElementName=Slider, StringFormat=P2}"

3

ich ein ähnliches Problem und es durch Verwendung dieser gelöst hatte auch in diesem Format verwendet werden , basierend auf @ Wiesels Antwort:

<Label Content="{Binding Value, ElementName=Slider}" 
     ContentStringFormat="{}{0}%"/> 
Verwandte Themen