2016-07-10 5 views
-2

Ich muss 5 einfache Rechtecke in einem Datengitter Zelle gestapelt anzeigen.WPF was ist schneller verstecken, kollabieren, undurchsichtig 1 oder malen transparent

Das Datenraster hat 3000 Zeilen. Nur eine Zelle in einer Spalte enthält diese.

Aber ich brauche nur 2 Zellen von 3000, um jederzeit aktiv zu sein.

Die 2 aktiven Zellen bewegen sich ständig im Raster, aber in kleinen Schritten (1 Reihe nach oben/unten).

Ich muss vorherige aktive Zelle ausblenden (weil es sich um eine Zeile zu einer Zeit bewegt, muss ich nur eine Zelle ausblenden).

Dieser Vorgang wird 20 Mal pro Sekunde ausgeführt.

Q1: was ist schneller zu verbergen vorherige aktive Zelle - ausblenden, zusammenfallen, machte es undurchsichtig 0, mit transparenten malen?

Q2: Wie gruppiere ich dies - ist es schneller zu tun, was auch immer als Antwort auf Q1 auf jedem Rechteck vorgeschlagen oder ist es schneller, einen Rand der Größe der Zelle zu haben und inaktive Rechtecke in einem gehen?

Die Füllung der aktiven Rechtecke ändert sich ständig.

Ich werde jedes Rechteck Fill-Eigenschaft binden und ich muss sie anders malen.

Dieser Vorgang findet 100 Mal pro Sekunde statt.

Q3: Was ist schneller zu ändern Füllen Wert der Rechtecke - Bindung oder eine Art direktes Schreiben in den Rechtecken?

Ich würde gerne einen Performance-Tipp hören, auch wenn es viel Arbeit erfordert (zB mit Glyphen oder schlechter) und mir nur 1ms oder weniger erspart.

Dies ist keine einfache Frage, also erwarte ich eine ernsthafte Antworten nicht point-Grabbing.

+0

durch die Art und Weise, Ihre Frage ist nicht ganz klar. Es könnte nützlich sein, * Ihre Absicht/Gesamtziel * sowie einige Bilder von dem, was Sie erreichen wollen, –

+0

ist einfach hinzuzufügen. Ampeln.10 über 2 Zellen. und sie bewegen sich auf und ab. –

+0

Wenn ich Ampeln höre, stelle ich mir drei Lichter mit rot gelb und grün vor. Wenn ich mir ein paar von ihnen vorstelle, weiß ich immer noch nicht, wie ich zu dem komme, was Sie sich vorstellen.So kann es in Ihrem Kopf einfach sein, aber ich weiß immer noch nicht, was Sie vorhaben zu tun –

Antwort

1

Was Sie vorhaben zu tun, könnte zu Leistungsproblemen führen. Solange du es noch nicht ausprobiert hast, wirst du es nicht wissen. Ich würde jedoch annehmen, dass die Visibility="Collapsed" die schnellste Ihrer Optionen ist.

Ich möchte Ihnen jedoch eine Alternative vorschlagen: Verwenden Sie eine Adorner. Dies scheint wie die Situation dafür. Selten würde ich eigentlich vorschlagen, einen zu verwenden, weil sie nicht so einfach zu implementieren sind, aber wenn Sie feststellen, dass Ihre anderen Optionen Leistung fehlt, bin ich mir ziemlich sicher, dass ein Adorner besser sein wird.

Haftungsausschluss: kein einfacher Punkt ziehen sollte

+0

ja. als ich "Glyphen" in der Frage sagte, meinte ich eigentlich Schmeichler :) Hirnfurz .. Ich habe sie vor 2 Jahren benutzt. Sie machen einen Unterschied. aber ich bin ziemlich sicher, dass du Collapsed falsch liegst ... es wurde nur im Dunkeln gedreht, war es;) Ich bin mir fast sicher, dass es die langsamste aller Optionen ist. –

+0

Wie ich in meinem Kommentar gesagt habe, bin ich nicht sicher, was Sie vorhaben, aber ich würde argumentieren, dass die Optionen 1: undurchsichtig 2: Einstellung es versteckt 3: Einstellung es kollabiert - kollabiert ist die einzige, die würde Sagen Sie der Render-Engine, dass sie das Zeichnen überspringt und somit die Arbeit überspringt, wodurch sie schneller ist. –

+0

Ich möchte die Zeichnung nicht überspringen. Ich möchte den Übergang zwischen An und Aus so schnell wie möglich machen. Der Collapse muss den Inhalt auf jedem "on" –

Verwandte Themen