Laden...

Suche iTunes User Control (Kapazitätsanzeige, die nach Kategorien unterscheidet)

Erstellt von DennyW vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.612 Views
D
DennyW Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
Suche iTunes User Control (Kapazitätsanzeige, die nach Kategorien unterscheidet)

Hallo.
Ich suche ein Control, das so aussieht, wie das Bild im Dateianhang.
Ich brauche im Grunde so eines, wo man am Anfang und am Ende einen Bereich in verschiedenen Farben markieren kann. In der mitte Wäre frei (Grau).
Am liebesten hätte ich so ein Control in Source Code Form.

Hat vielleicht schon mal jemand so etwas gesehen?
Hab schon viel gesucht, aber nichts passendes gefunden.

Danke
Denny

2.298 Beiträge seit 2010
vor 12 Jahren

Hast du denn mal bei Codeproject nachgesehen?

Ansonsten sollte es auch selbst ohne großen Aufwand zu implementieren sein. Falls du es selbst implementieren musst, kann ich dir folgende Artikel zum lesen auftragen: [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox), [FAQ] Flackernde Controls vermeiden / Schnelles, flackerfreies Zeichnen, [Artikel] Einführung: Zeichnen Optimieren / Schnelles zeichnen

Im Netz finden sich sicher auch reichlich Informationen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

D
DennyW Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Dort habe ich schon gesucht. Habe auch ein Ergebnis gefunden:
http://www.codeproject.com/KB/progress/iTunes_Bar.aspx

Aber das Control unterstützt nur eine Unterteilung und ist sehr einfach gehalten. Und es ist nicht abgerundet und ohne Beschriftung.

Selbst Zeichnen wäre ne Alternative allerdings bin ich Anfänger und es ist nicht ganz einfach für mich.

2.298 Beiträge seit 2010
vor 12 Jahren

So schwierig ist es nicht. Du kannst dir Beispielsweise das Control als Vorlage nehmen und auf deine Bedürfnisse anpassen.

Grob was zu tun wäre:

  • Rundung links und rechts
  • Farbbereichsangaben (rot 50%, gelb 20%, grau rest)
    -> natürlich auch so einfärben je nach wert.
  • Beschriftungen unter dem Control

Beschäftige dich halt mit dem Zeichnen in Windowsprogrammen, zum Beispiel aus verlinkten Threads. Im Internet findet sich auch einiges. Dann kannst du das Control auch anpassen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

D
91 Beiträge seit 2005
vor 12 Jahren
Hinweis von herbivore vor 12 Jahren

Achtung, wir sind hier in "GUI: Windows-Forms", das folgende Control ist aber WPF.

Hallo DennyW!

Das Thema hat mich auch interessiert. Mit WPF habe ich es hinbekommen. Schau dir doch mal mein Beispiel an und sag mir, ob es dir weiterhilft. Meines Wissens kann man auch in WindowsForms-GUIs WPF Elemente darstellen.

Da ich mich mit WPF nicht so gut auskenne, wäre ich für Verbesserungsvorschläge dankbar.

VG, Florian


<Window x:Class="WpfSegmentedProgressbarTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <Grid>

        <Slider x:Name="slider1" Width="200" Height="50" Minimum="0" Maximum="1" Value="0.3"/>

        <Slider x:Name="slider2" Width="200" Height="50" Minimum="0" Maximum="1" Value="0.6" Margin="152,171,150,90" />
        <Rectangle Name="rectangle1" Stroke="Black" Width="200" Margin="152,12,0,0" Height="52" VerticalAlignment="Top" HorizontalAlignment="Left" RadiusX="25" RadiusY="50" >
            <Rectangle.Fill>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                    <GradientStop Color="Red" Offset="0"/>
                    <GradientStop Color="Red" Offset="{Binding ElementName=slider1, Path=Value}"/>
                    <GradientStop Color="Yellow" Offset="{Binding ElementName=slider1, Path=Value}"/>
                    <GradientStop Color="Yellow" Offset="{Binding ElementName=slider2, Path=Value}"/>
                    <GradientStop Color="Transparent" Offset="{Binding ElementName=slider2, Path=Value}"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
    </Grid>
</Window>


2.298 Beiträge seit 2010
vor 12 Jahren

Hallo deerhunter,

ich habe derzeit kein Visual Studio mit .NET > 2.0 zur Hand, könntest du mal einen Screenshot anhängen wie das ganze dann aussieht?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

D
91 Beiträge seit 2005
vor 12 Jahren

könntest du mal einen Screenshot anhängen wie das ganze dann aussieht?

Klar doch.
OT: Wie umständlich das mit den Screenshots immer bei Windows ist... Da gefällt mir mein Mac zu Hause viel besser 😉 Dies soll keine Aufforderung zum Flamewar sein. Nur eine Feststellung.

D
DennyW Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Hmm sieht sehr simple aus...

T
25 Beiträge seit 2011
vor 12 Jahren

Hmm sieht sehr simple aus...

Das Aussehen kannst du ja ändern WPF hat da einige Möglichkeiten.
Den Spiegelungseffekt Bsp: How to: Create a Reflection

"Niemand macht einen größeren Fehler als derjenige, der nichts tut, weil er glaubt, nur wenig tun zu können!"

D
91 Beiträge seit 2005
vor 12 Jahren

Hmm sieht sehr simple aus...

OT: Wie hättest du es denn gerne?
Passen dir die Farben?
Sonst noch Wünsche?

Ich bin raus.

Schönes Wochenende.

D
DennyW Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Na ich hätte es gerne wie in iTunes: Innerer Schatten, Farbverlauf, Reflektion, ohne sichtbaren (schwarzen Rahmen)

T
25 Beiträge seit 2011
vor 12 Jahren

Na ich hätte es gerne wie in iTunes: Innerer Schatten, Farbverlauf, Reflektion, ohne sichtbaren (schwarzen Rahmen)

Und du willst das es dir jemand programmiert? Dann wärst du wohl in Jobbörse richtiger 😉

"Niemand macht einen größeren Fehler als derjenige, der nichts tut, weil er glaubt, nur wenig tun zu können!"

D
DennyW Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

Hehe ne die Frage war ob das jemand schon mal gemacht hat und für en paar Tipps zu bekommen.
Ich werds demnächst mal versuchen...