Laden...

WPF ProgressBar mit Balken in negative und positive Richtung

Erstellt von CodeF vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.288 Views
C
CodeF Themenstarter:in
12 Beiträge seit 2020
vor 4 Jahren
WPF ProgressBar mit Balken in negative und positive Richtung

Hallo, ich bin dabei mich in C# und WPF einzuarbeiten.

Für ein Projekt brauche ich eine Balkenanzeige, die mir Werte visualisieren kann.

Für den ersten Anwendungsfall (min: 0.0 max: 10000.0) würde mir die Funktion der ProgressBar völlig ausreichen.

Für den zweiten Anwendungsfall (min: -5000.0 max: 5000.0) sollte der Balken der ProgressBar bei einem Value von z.B. -2500.0 von der Null-Linie aus nach unten sich mit entsprechender Farbe füllen und bei einem Value von z.B. 1000.0 von der Null-Linie nach oben füllen.

Leider habe ich im Netz nichts entsprechendes gefunden.
Für einen Umsetzungsvorschlag wäre ich sehr dankbar.

Gruß

16.806 Beiträge seit 2008
vor 4 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig?
Was ist die konkrete Frage? Was hast Du versucht? Wo kommst Du nicht weiter?

Willst Du ein fertiges Control, dann kannst auch selbst auf die Google/GitHub Suche gehen - das müssen nicht wir für Dich übernehmen 😉

C
CodeF Themenstarter:in
12 Beiträge seit 2020
vor 4 Jahren

Hi. Danke für die Info.

Ein fertiges Contol möchte ich nicht, will doch was lernen.

Mein erster Ansatz war zwei mal die ProgressBar in ein StackPanel gesteckt damit die ober PB die positiven Werte anzeigt und die untere die negativen. Leider klappt das mit der Füllung bei den negativen Werten nicht. (PD füllt immer von min nach max)

Gruß

4.931 Beiträge seit 2008
vor 4 Jahren

Du könntest mittels


<ProgressBar RenderTransformOrigin="0.5,0.5" >
   <ProgressBar.RenderTransform>
      <CompositeTransform Rotation="180"/>
   </ProgressBar.RenderTransform>
</ProgressBar>

die gesamte untere ProgressBar um 180° rotieren lassen.

C
CodeF Themenstarter:in
12 Beiträge seit 2020
vor 4 Jahren

Hallo, danke für den Beitrag.

Wenn ich das probiere kommt eine Fehlermeldung "CompositeTransform wird bei einem WPF-Projekt nicht unterstützt.

Sorry.

4.931 Beiträge seit 2008
vor 4 Jahren

OK, dann ist das nur für UWP.
Aber probiere dann mal


<ProgressBar RenderTransformOrigin="0.5, 0.5">
    <ProgressBar.RenderTransform>
        <RotateTransform Angle="180"/>
    </ProgressBar.RenderTransform>
</ProgressBar>

C
CodeF Themenstarter:in
12 Beiträge seit 2020
vor 4 Jahren

Hi, folgender Stand.

Um den Balken bei negativen Werten nach unten wachsen zu lassen muss die PB um 180° gedreht werden. Dies funktioniert mit den neuen Code auch. Danke.

Leider müsste dann aber der Minimum-Wert auf Null und der Maximum-Wert auf z.B.: -1000 gesetzt werden. Wenn ich mit dieser Einstellung teste, ist der komplette Bereich der PB immer gefüllt, egal welcher Value vorgegeben wird.

Gruß

4.931 Beiträge seit 2008
vor 4 Jahren

Benutze dafür nur den Betrag der Zahl (d.h. auch die untere Progressbar hat nur positive Zahlen als Bereich).