Wäre es nicht schneller wenn man mit einer Teile-und-Herrsche-Strategie da rangehen würde?
Also ein Element in der Mitte schnappen->zu groß/klein -> Element zwischen aktueller Position und Anfang/Ende schnappen->usw.
Was ich eigendlich fragen wollte ist muss ich das alles selbst implementieren oder gibts irgendwas in Linq was mir die Sache vereinfacht und trotzdem performant ist?
SortedList möchte neben dem eigentlichen Datenwert noch einen Key haben. Soll ich da einfach den Zeitwert der Objekte übergeben? Die Wunschzeit hab ich ja zu dem Zeitpunkt noch nicht.
Hallo miteinander.
Da ich nach langjähriger Pause endlich mal wieder mit C# arbeite habe ich gleich eine Frage.
Ich habe einige tausend Objekte, in dem sich ein Zeit-Attribut befindet. Nun möchte ich mir gerne das Objekt rausholen, dessen Zeit-Attribut am nähesten an einem bestimmten Wert liegt.
Wie mache ich das am performantesten? Welche Datenstruktur sollte ich verwenden? Ich habe bereits an SortedList gedacht. Das Problem ist dass ich meine Objekte nicht nach Zeit sortieren sollte sondern nach Math.Abs(wunschzeit - o.Zeit).
Wie würdet ihr da vorgehen?
Du musst dein GeometryModel schon in einen Viewport3D packen damit es richtig dargestellt wird. Tutorials zum Viewport3D gibt es haufenweise im Internet. Da solltest du leicht fündig werden
Per Code an diese Elemente zu kommen ist so gut wie unmöglich und auch nicht wirklich sauber.
Am besten machst du es so ähnlich wie hier: http://bea.stollnitz.com/blog/?p=53
Hallo,
Ich habe eine TextBox deren Text an ein DependencyProperty gebunden ist. Da ich nur bestimmte Benutzereingaben zulassen will benutze ich die Validierung von WPF. In gewissen Szenarien muss ich die Validierung für dieses Property neu anstoßen. Dies mache ich indem ich den Wert des DependencyProperties kurz ändere und wieder rücksetze. Das funktioniert auch. Leider wird dabei aber der CaretIndex der TextBox wieder zurück auf 0 gesetzt. Das ist ganz schön nervig. Weis jemand wie ich das unterbinden könnte?
Das liegt daran dass WPF die Mauseingaben nur erfasst wenn du auf einem eingefärbten Bereich bist. Setzte mal die Background-Eigenschaft vom StackPanel auf Transparent. Dann solltest du die Mauseingaben erhalten.
Wenn du Binding hinschreibst würde ich mal stark davon ausgehen dass dann auch ein Binding erzeugt wird. Wenn du einfach nur die Resource hinzufügen möchtest mach doch einfach sowas:
<fk:TransitionPresenter
Name="ContenTransiter" DataContext="{Binding Path=BreadCrumb.CurrentFolder}"
Transition="{StaticResource Transition}">
<ContentPresenter />
<ContentPresenter />
</fk:TransitionPresenter>
Soweit ich weis kannst du den einzelnen Array-Elementen keinen Namen geben. Was funktionieren **könnte **ist folgendes (ungetestet):
<Blabla.Resources>
<!--Hier definierst du die einzelnen Array-Elemente als objekt und gibst ihnen einen key-->
<obj x:Key="obj1">blabla</obj>
<obj x:Key="obj2">blabla</obj>
<obj x:Key="obj3">blabla</obj>
<x:Array ...>
<StaticResource ResourceKey="obj1"/>
<StaticResource ResourceKey="obj2"/>
<StaticResource ResourceKey="obj3"/>
</x:Array>
</Blabla.Resources>
So solltest du auf die Objekte sowohl als Array als auch einzeln per ResourcenVerweis erreichen. Das ganze ich aber wie gesagt nicht getestet.
Hallo,
Ich möchte für Texteingaben ein Validierungstemplate schreiben dass so ähnlich aussieht wie die Ordnernamen-Validierung von Windows (siehe Anhang). Den Balloon-Tip habe ich als Popup realisiert. Nun habe ich aber noch 2 Probleme:
Man kann einen Popup ein PlacementTarget geben. Das Popup öffnet sich dann auch immer über diesen PlacementTarget. Allerdings verschiebt sich das Popup nicht mit wenn das PlacementTarget verschoben wird (z.B. wenn der Benutzer das Fenster verschiebt). Wie könnte man dieses Problem lösen?
Ein Popup kann anscheinend nicht über einem Bildschirmrand hinausgeschoben werden. Versucht man es trotzdem landet es immer am Rand des Bildschirms auf dem (laut manueller Platzierung) die meisste Fläche zu sehen wäre.
Kann man das irgendwie abstellen? Mir wäre lieber wenn ich bereits im Vorraus ermitteln könnte ob das Popup unterhalb der TextBox noch Platz hat. Falls es nicht mehr hinpasst würde ich den Balloon lieber über der TextBox platzieren und müsste dann auch den Pfeil beim Balloon anders ausrichten. Wie mache ich das?
Das liegt daran dass das StackPanel seinen Innhalt auf der Laufachse (X bei Orientation==Horizontal und umgekehrt) einfach so platziert als würde dort unendlich Platz zur Verfügung stehen.
D.h. hier konkret dass der Horizontale Scrollbalken nicht angezeigt wird da das äusserste StackPanel den ScrollViewer einfach entsprechend breit macht so dass kein Horizontales Scrollen nötig wird. Dass der ScrollViewer selbst nicht mehr ins StackPanel passt merkt das StackPanel nicht.
Ich würde dir empfehlen für deine GUI ein anderes LayoutPanel zu benutzen. DockPanel eignet sich ganz gut für wenige Elemente. Für komplexes Layout empfehle ich das Grid.