kilka pytań odnośnie WPF

kilka pytań odnośnie WPF
0

Witam,

Do tej pory zajmowałem się webmasteringiem (php-jQuery-html/css), teraz zainteresowałem się programowaniem w C#. Chciałem się dowiedzieć jak najlepiej uzyskać w WPF rzeczy, które znam ze wspomnianych technologii. Na przykład, gdy potrzebuję mieć kontrolę nad wartościami jakichś właściwości danych elementów, html/css nadaję tym elementom klasę, i potem do niej się odwołuję, przypisując te wartości. 1) Czy da się zrobić coś takiego w XAML? Kolejna sprawa: potrzebuję zrobić tabelę. O określonej liczbie wierszy, kolumn, z możliwością scalania komórek, dodawania obramowania etc. W komórkach powinny móc się znajdować każdego rodzaju kontrolki. 2) Jak to zrobić? 3) Jak ustawić kolor tekstu kontrolki w HTML lub RGB? 4) Czy tworzenie kontrolek w pętli podczas każdego uruchomienia programu spowoduje wolniejsze jego działanie, niż skopiowanie ileś razy kodu do edytora XAMLa?

Na razie tyle, z góry dziękuję za odpowiedzi

M8
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:59
1

Cześć!
Generalnie XAML nie jest aż taki skomplikowany i pewnie da się zrobić rzeczy o których piszesz (a raczej na pewno) jednakże trzeba do niego troszeczkę cierpliwości bo potrafi zniechęcić na początku :-). Sugerowałbym Ci przejrzeć uważnie te linki:
http://dotnetslackers.com/articles/silverlight/WPFTutorial.aspx to taki step by step pierwszej aplikacji a tutaj już coś więcej: http://www.kirupa.com/blend_wpf/index.htm
Powinieneś sobie poradzić :).

Od siebie powiem Ci jeszcze tyle, że najlepiej jakbyś najpierw dobrze ogarnął C#, potem pobawił się troszeczkę z Windows Forms a na końcu WPF.
Piszesz, że jesteś dobry w jQuery i CSS - a czy wiedziałeś, że dzięki tym technologią też można tworzyć aplikacje komputerowe? Mam na myśli Windows 8 a konkretnie - Modern UI.
http://code.msdn.microsoft.com/windowsapps/site/search?f%5B0%5D.Type=ProgrammingLanguage&f%5B0%5D.Value=JavaScript&f%5B0%5D.Text=JavaScript jak masz ochotę to możesz sobie przejrzeć jakieś przykłady. Wygląda to w taki sposób, że elementy interfejsu piszesz w CSS natomiast logikę w JavaScript/TypeScript. Nie można pisać wtedy w C# o ile się nie mylę.

edytowany 1x, ostatnio: mvt8
0

Dzięki wielkie za odpowiedź, przejrzę te linki. Owszem, XAML mnie trochę zniechęcił, przez to że jego logika niewątpliwie różni się od tej z html/css. Wiem, że można pisać pod desktop w javascripcie, ale po pierwsze jest to jak na razie rozwiązanie mało wydajne, a po drugie - jak sam wspomniałeś - jest to nowość i nie działa na starszych systemach operacyjnych, które bądź co bądź są dużo bardziej popularne od ósemki i póki co nie zanosi się na większe zmiany w tym względzie. Co do samego C# to już trochę go zdążyłem poznać, programowanie obiektowe mam nieźle opanowane, zdążyłem trochę ogarnąć bibliotekę .NET i przez ten czas używałem właśnie Windows Forms, które jednak nie może być wykorzystane do profesjonalnego tworzenia ładnych aplikacji, a przecież tego chcę się nauczyć. Wiem że używanie html i css w C# nie jest możliwe, w przeciwnym razie pewnie nawet nie brałbym się za XAMLa.

0

P.S. Jak może da się zauważyć, mój problem skupia się głównie na dynamicznym dodawaniu i zarządzaniu właściwościami WIELU kontrolek. Gdyby ktoś mógł mi trochę naświetlić ten temat, byłbym wdzięczny.

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Wrocław
0
abcd1234 napisał(a):

przez ten czas używałem właśnie Windows Forms, które jednak nie może być wykorzystane do profesjonalnego tworzenia ładnych aplikacji

Byzydura, profesjonaliści nie mają problemów z tworzeniem ładnych aplikacji w WinForms: http://www.telerik.com/products/winforms.aspx

Wiem że używanie html i css w C# nie jest możliwe, w przeciwnym razie pewnie nawet nie brałbym się za XAMLa.

Gdy tworzy się aplikacje webowe, jest nie tylko wymagane, ale i niezbędne.

0

Co do 'byzydury' - może masz rację, ale to mało istotne. Istotne jest, że WPF jest ponoć lepsze od Windows Forms, i dlatego chciałem się tego nauczyć. Co do html w C# - od początku mówimy o aplikacjach desktopowych, więc pozwoliłem sobie zaniechać powtarzania tego na każdym kroku. Widzę że musisz się nieźle orientować w C# i .net, może ustosunkujesz się jakoś do mojego problemu?

n0name_l
A kto Ci zabroni uzywac htmla w aplikacji desktopowej?
LL
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 10 lat
1

Wszystko się da, o ile umiesz to zrobić.

Tabela,
pierwsze lepsze komponenty:

  • Grid (ColumnDefinition, ColumnDefinitions, RowDefinition, RowDefinitions,
    Column, Row, ColumnSpan, RowSpan); lub
  • DataGrid (DataGridTemplateColumn, DataGridTextColumn itp).

Kolor tekstu:
Zakładka Brushes w oknie Properties dla danej kontrolki. Właściwość Foreground.
W kodzie używasz metod struktury Color i jakiejś klasy, którą ją przyjmuje za wartość:

Kopiuj
 button1.Foreground = new SolidColorBrush(Color.FromRgb(20, 0xAC, 0xFF));

Jak widzisz, można podać RGB za pomocą różnych zapisów liczb. ARGB, gradienty i inne rzeczy, które duszyczka zapragnie* są.

Tworzenie kontrolek.
Spowolnienia całego programu nie będzie, tylko co najwyżej opóźnienie w wyświetleniu kontrolek,
jak np. będziesz je tworzyć dopiero po pokazaniu się okna.

* z pewnymi wyjątkami

edytowany 1x, ostatnio: lowLevel
A1
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:1
0

ok, pobawię się z gridami w takim wypadku. Co do tworzenia kontrolek: właśnie o to mi chodzi, żeby w jakiś sposób dodawać je dynamicznie bez opóźnienia w ich wyświetlaniu. jest to w ogóle możliwe?
@n0name_l, w kilku miejscach już czytałem, że nie da się stworzyć layoutu programu pisanego w C# za pomocą html, można tylko w XAMLu. Jeśli się mylę to proszę o sprostowanie...

Zobacz pozostały 1 komentarz
A1
świetnie, pytanie, w jaki sposób używać tego layoutu, jak go wyświetlić, obsługiwać zdarzenia i przekazywać mu dane?
n0name_l
Znalezc/napisac cos co wygeneruje z tego htmla kod c#...
A1
Nie jest to głupi pomysł, natomiast nie o to mi chodziło, gdy pisałem o 'używaniu html i css w c#'
n0name_l
Nie wiem o co Ci chodzilo. Wiem tylko, ze sie da i to co napisales bylo nieprawda.
A1
Dziękuję wobec tego za sprostowanie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.