Pytanie do WPF 3D. Zrobiłem sobie dwie obracające się bryły (obracam je z częstotliością 25Hz). Czego jak odpalę symulacje obrotu tych dwóch brył zżera mi to większe pół procka? Przecież wpf korzysta z DirectX (mam DX 11) więc grafika w wpf powinna być wykonywana na karcie graficznej

Szczególy:
1.mam funckje która tworzy trojkąt płaski: czyli tworze MeshGeometry3D i uzupełniam. Z tej funkcji zwracam GeometryModel3D (bo jeszcze materiał tam dodaje)
2. funkcja do tworzenia cube'a: w
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PanCogito: Visual Studio 2015 ma profilera do WPF-a. Nie bawiłem się WPF-em 3d, ale najgorsze problemy z wydajnością miałem po ręcznym sterowaniu drzewem wizualnym. Może da się do Transform3DGroup/RotateTransform3D zbindować coś, żeby nie tworzyć następnych DependencyObject-ów.
  • Odpowiedz
@PanCogito: Pokaż kod, może coś wymiślę.
Zapytałem się dzisiaj w pracy jak była zrobiona pewna wizualizacja (3D) danych i był to OpenGL (cała reszta aplikacji WPF), bo wpf miał problemy z wydajnością.
  • Odpowiedz
@PanCogito Witam, ja problem rozwiązałbym modelem producent/konsument, odpaliłbym osobne wątki liczące które w nieskończonej pętli pobierały by dane z kolejki. Dane do nich można przekazywać przez kolejkę ConcurrentQueue posiada blokady do bezpiecznego dodawania/usuwania. Nie wiem ile masz danych do przekazywania i przeliczania ale myślę że w ten sposób dałoby radę.
  • Odpowiedz
@PanCogito: jeżeli potrzebujesz obliczać coś równolegle nie koniecznie to musi być osobny wątek dla każdego z czujników, najlepiej wykorzystać wielowątkową architekturę współczesnych procesorów tj. utworzyć wątki w liczbie zbliżonej do ilości wątków procesora, daje to możliwie najlepsze wykorzystanie procesora (przy dużym obciążeniu). Jest to świetnie opisane w książce "Programowanie równoległe i asynchroniczne w C# 5.0". Wiem że mogę zaburzać Ci koncepcję rozwiązania ale ramki które odbierasz możesz wrzucać bezpośrednio w
  • Odpowiedz
@Spisssek: Google mówi że coś takiego jest, osobiście nie sprawdzałem. Jak mam być szczery to aż tak dużych różnic między html a wpf to chyba nie ma. Jak wypróbujesz to podziel się czy warto :)
  • Odpowiedz
Jak mogę uzyskać podobny efekty w wpf? Chodzi mi przede wszystkim o perspektywiczną podłogę z szachownicy i odpowiednie światło żeby było widać w miarę wyraźnie obrót przedmiotu 3d umieszczonego w takiej scenie. Jakim materiałem pokryć przedmiot 3D żeby były widoczne jego kontury podczas obracania?
#csharp #wpf #programowanie
PanCogito - Jak mogę uzyskać podobny efekty w wpf? Chodzi mi przede wszystkim o persp...

źródło: comment_RtQ2krCOxYCgxPkyKxqPsEoOUIIJXv97.jpg

Pobierz
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MP0WER: w sumie to już to zrobiłem, podłoga to po prostu kwadraty zbudowane z meshów. Reszta to dobranie odpowiedniego światła i materiału na obiekcie.
Wpf posiada wbudowane funkcje graficzne. Przecież można tworzyć dowolne obiekty 3D, obracać je, przemieszczać i dowolnie przekształcać. Poza tym ustawienia kamery, światła, materiałów i wiele wiele innych to też przecież funkcje graficzne.

edit: to wpf właśnie korzysta z takiej biblitoeki która nazywa się DirectX ( ͡
  • Odpowiedz
Witam,
mam dziwny problem z callbackami w c#. Mam oto taki kod:

private void SendNextListToDongle(){

int frameSize = (snList.Count > 8) ? 54 : (snList.Count * 6) + 6;
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczki, jakaś kontrolka do wyświetlania struktury ala graf ?

Kolorowe bloczki, połączone ze sobą, powinny dać się przesuwać swobodnie + zależy mi na multiselekcji, obecny kod który dostałem w spadku oparty jest na ListBoxie, i troche ssie w trybie multiple, a extended przy próbie przesunięcia kilku zaznaczonych elementów robi focus na tym klikniętym (w evencie OnLMBDown)

#programowanie #wpf #csharp
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Treść przeznaczona dla osób powyżej 18 roku życia...
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki z #wpf #csharp

Dodaję do ComboBox w #xaml pozycję przez Var a potem podczas ładowania danych przez comboBox.Items.Add.
Następnie w zdarzeniu SelectionChanged:
string filterText = ((sender as ComboBox).SelectedItem as string);

i właśnie SelectedItem dla dodanego "Var" ma wartość obiektu ComboBoxItem a dla wartości dodanych przez comboBox.Items.Add to zwykły string.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ziolo86: A, czyli chcesz mieć stringi przy obsłudze SelectedItem.
W tym wypadku, szczerze mówiąc to nie wiem jak zrobić żeby hardcodowane elementy nie były ComboBoxItem.
Wiem że jak zrobisz tak jak napisałem wyżej + w SelectionChanged weźmiesz
var cbi = combobox.SelectedItem as ComboBoxItem;
var stringValue = cbi.Content as string;
To otrzymasz stringi dla
  • Odpowiedz
@ziolo86: :(. Poczytaj o MVVM, nie powinieneś praktycznie nigdy w ten sposób ładować danych do combobox. WPF ma bardzo dobre wsparcie dla bindingów, naucz się z nich korzystać, a zapomnisz raz na zawsze o ręcznym dodawaniu czegokolwiek do comboboxa.
Co do zasady* - kod, w którym odwołujesz się do kontrolki w WPF jest złym kodem.

  • Odpowiedz
@johanneskate1: W takim razie ok - ma to sens. Generalnie każda operacja powinna mieć zdefiniowany własny obiekt DTO (data-transfer object)/ViewModel, nie zwracaj obiektów encji do widoków. Powód: chociażby dlatego, że będziesz zaciągał wszystkie (nawet te nie potrzebne dane), dodatkowo na pewno wystąpia problemy z lazy-loadingiem (np. widok może odwołać się do pola, w ktorym jest lazy-load, a ty nawet o tym nie będziesz wiedział). Ponadto raczej na pewno wystąpia kolejne
  • Odpowiedz
Mam sobie aplikację WPF, w której potrzebuję śledzić ruch myszy nad canvasem i wraz ze zmianą położenia myszy aktualizować komponenty rysowane na tymże canvasie. Aktualnie robię to przez obsługę MouseMove, ale rozdzielczość czasowa jest zbyt mała i zbyt szybkie ruchy myszą pieprzą sprawę. Macie jakiś pomysł jak to rozwiązać?

#wpf #csharp
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Piszę aplikację w WPF w której wyświetlam dane. Te umieszczone w listview wyglądają bardzo tragicznie, tzn chciałbym coś ciekawszego. Czy te ładniejsze jak np. to z załączonego obrazku (ale nadal nie o takie chodzi, jeszcze ładniejsze - przyciski, duża dowolność w rozdzieleniu miejsca itp) robi się również w listview tylko go modyfikując, czy używa czegoś innego? Możecie jakoś pomóc jak urozmaicać takie coś żeby wyglądało nowocześniej? #wpf #dotnet
j.....1 - Piszę aplikację w WPF w której wyświetlam dane. Te umieszczone w listview w...

źródło: comment_nZXbJ1FqG3bJvTRoseFg73xlyUFa0YTN.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jakie warunki musi spełniać klasa aby mogła być przypisana jako DataType do DataTemplate w XAMLu? Mam coś takiego:

C#:

public class DatabaseItem

{
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JareQ: ja bym kombinował coś ze stylem dla ListBoxItem i odpowiednie triggery z użyciem AlternationIndex. chociaż jeśli nie ma jakiejś zależności między wybranymi indeksami to nie wiem czy to wypali.
  • Odpowiedz
@Konalio: Właśnie w tym momencie wykombinowałem. Przy dodawaniu do listboxa nie dodaje Stringa tylko tworzę litboxItem, w content wrzucam string który powinien tam być, i jako .Foreground ustawiam sobie odpowiedni kolor. Dzięki! :)
  • Odpowiedz