WPF, parę prostych pytań.

0

Cześć wszystkim.

Udało mi się skończyć wersję alpha szkieletu gry RPG. Wymyśliłem fabułę, opracowałem łączenia między klasami i zamknąłem to w pliku *.DLL. Dorobiłem testy i wszystko aż lśni poprawnością działania. Taki piękny kodzik aż się prosi, aby go użyć. Z początku myślałem, żeby przełożyć to na konsolę. Szybko jednak zrezygnowałem z tego planu. Przecież C# to język możliwości. Moje zainteresowanie przykuł więc WPF.

W związku z tym mam kilka pytań:

-Jak opracować takie zakładki, żeby można było się przełączać między nimi?
user image
-Do CAŁKOWITEJ zmiany wyświetlanej zawartości w oknie potrzebne jest stworzenie nowego okna?
-Gdzie umieścić całą logikę kodu? Nie ma czegoś takiego jak main()?
-Czy w ogóle WPF nadaje się do takich zastosowań?

Myślałem też nad implementacją go w Unity, bądź przepisaniem na C++ i zrobieniem interfejsu w SFML'u.

Co o tym myślicie?

PS Wiem że odpowiedź na pierwsze pytanie jest w google, ale kompletnie nie miałem pojęcia co wpisać w wyszukiwarkę.

1
emSon napisał(a):

-Jak opracować takie zakładki, żeby można było się przełączać między nimi?

Masz w toolbox TabControl

emSon napisał(a):

-Do CAŁKOWITEJ zmiany wyświetlanej zawartości w oknie potrzebne jest stworzenie nowego okna?

Możesz używać jednego okna i podmieniać tylko UserControle na nim.

emSon napisał(a):

-Gdzie umieścić całą logikę kodu? Nie ma czegoś takiego jak main()?

Jest tylko go nie widać, jest automatycznie generowany:

// WpfApplication1.App
[GeneratedCode("PresentationBuildTasks", "4.0.0.0"), DebuggerNonUserCode, STAThread]
public static void Main()
{
	App app = new App();
	app.InitializeComponent();
	app.Run();
}

A określenie które okno ma być odpalone na starcie ustawia się w:

<Application <! - ...-> StartupUri="MainWindow.xaml">

lub można w kodzie C#.

emSon napisał(a):

-Czy w ogóle WPF nadaje się do takich zastosowań?

Dać się da tylko czy warto się bawić. Jak to ma być gra to Unity wydaje się 100 razy sensowniejszym pomysłem.
Ale w życiu gry nie napisałem więc mam zerowe pojęcie o tym. :)

EDIT:
Coś się tego main() uczepił. :P

  1. Można zrobić własny Start Up Event
    Przykład: https://msdn.microsoft.com/en-us/library/system.windows.application.startup(v=vs.110).aspx#Anchor_2

  2. Lub:
    W pliku App.xaml usuwasz wpis StartupUri="MainWindow.xaml"
    następnie App.xaml -> Properties -> Bulid Action -> Page
    Później w App.xaml.cs wklejasz funkcje main()

public partial class App : Application
{
   [STAThread]
   static void Main()
   {
      MainWindow window = new MainWindow();
      App app = new App();
      app.Run(window);
   }
}

i powinno działać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1