So....I've never really done much in the way of GUI programming apps. Namely because for school ive been stuck in C++ land. But since Im graduating in December I thought it'd be nice (while im looking for a job) to study something I've wanted to look into for awhile. And please dont mark this as "subjective" im just simply asking what I need to "know" to get started.
Namely GUI programming. Im not used to it....nor have I really ever been. It's not something they focus on in school (for instance my senior design was a webcam mouse thing, but had very little in the way of GUI)
I've seen alot about C# being the superior GUI programming tool for fast development.....but I dont really know whats out there. I know "of" QT, and Im used to C++. However Im not too familiar with what the "choice" GUI language is. I do like programming on Windows however most of my stuff has been in Unix here lately (Mostly because of my OS class).
I dont know anything about .net, and i've heard of something called WPF? Is that part of .net.....or.....what? Im just a bit confused at where to start.
Thanks
Microsoft has some good resources for getting started on their platform with .NET.
Try these...
Development for Beginners
Welcome to the Windows Development track. This is the best place to learn how to create software for Windows. Windows applications can take advantage of your computer's sound, graphics, and other capabilities. You will learn how to write software for Windows XP, Vista, or Windows Server using Visual Basic, Visual C#, or Visual C++ Express Editions.
Ramp Up
Ramp Up is a free, online, community-based learning program that will help you build professional development skills. Join Ramp Up (it's free!) and help advance your career...
Creating Your First Visual C# Application -
This link contains three samples:
How to: Create a C# Console Application
How to: Create a C# Windows Forms Application
How to: Create a C# WPF Application
Visual C# Guided Tour
The Visual C# Guided Tour presents a series of lessons that introduce you to the Visual C# Express Edition integrated development environment (IDE), creating your first application, and designing the user interface of an application.
Learn .NET Framework on MSDN
Start here to get a conceptual overview of the key features of the .NET Framework, including the common language runtime, the .NET Framework class library, and more.
Yeah.... C# is a great tool for GUI.... My condition was same like yours when I started.... My suggestion is get into it.... Make some simple GUIs.... Its fun to make simple apps like say Calculator!
There are very good tutorials available on internet.... You are just a Google away from them.... And For everyproblem, There is Stack Overflow! :)
All the best!!
You can check this too: C# GUI primer tutorial
WPF is pretty awesome. It is rather closely related to xml.
http://msdn.microsoft.com/en-us/library/aa663364.aspx
If you use the toolbox its mostly self explanatory for the basic components. Here are components of a basic page.
http://msdn.microsoft.com/en-us/library/bb531270(VS.90).aspx
You have two choices to go with:
Windows Forms (WinForms)
Windows Presentation Foundation (WPF)
For all future desktop GUI applications, WPF is recommended.
Related
Where can I get a full tutorial or course needed so as to learn everything when coding a win 10 application on visual basic...or get all windows 10 applications libraries/sdk
Welcome to SO! This is where you can start: How to create an application in Visual Basic, but to know everything about Visual Basic you'll have to do some research on knowledge bases. For instance my favorite knowledge base is Tutorialspoint, because it not only has everything about programming logged into one 'place', but it also shows custom code examples to give better understanding about the different topics. This page on Tutorialspoint explains everything about VB, and it's very compact.
I am developing a Map editing software that works in correlation with my Android game engine. I currently have the software nearly complete written in c# using visual studios. You can view the required functionality and current program via this video Here.
I realize after already developing the map editor that visual studios was not the best choice for me. I need the engine to run on OSX AND Windows (linux would be nice too). What I am asking from you is what are some decent options for building a cross platform GUI. I have done some research on QT however I am not a huge fan of C++. I would prefer to write in C, C#, Java, or possibly a scripting language.
Here is a list of things I would like to see:
Cross platform ( OSX and Windows are a must)
Visual Form builder (I like QTs and Visual Studios...also not that picky)
GUI is clean (Design is big for me, so I dont want the old windows 2000 look)
Not C++
I understand Java in itself is cross platform; however, it seems clunky to me. Thats more of a last resort.
Thanks in advance for your help!
The mono framework is an open source version of the dot net framework that works on Linux and Mac
http://www.mono-project.com/Main_Page
I come from two distinct backgrounds: I have much experience with WPF/XAML/C# app development and equal experience with C++/DirectX development. I hear about the ability to use DirectX and XAML together and I get all excited, but now I have hit this wall.
I'm trying to use the SwapChainBackgroundPanel in a WPF application. But I'm trying to use C# as the underlying language. I keep running into issues where, regardless of the type of C# project I create (PCL, WPF, Windows Store) none of these types are defined [namely I've been looking for SwapChainBackgroundPanel and some other DX stuff like the device and etc.)
So my question is: how does this work in C#? I've seen the simple shooter example from the MSDN done in C++ and it makes sense; I get it. But I feel like I'm missing one of those "gotcha's" when trying to do it in C#.
Any advice, or maybe a link to an example, or at best a little tutorial on setting up a C#/XAML/DX app would be amazing. Thanks everyone.
There is no SwapChainBackgroundPanel available to a WPF app (that is in PresentationCore). The closest you are going to get is the D3DImage class, but it's not exactly the same. See this discussion.
I don't think you can fully utilize the DirectX capabilities of a Windows 8 Store app (SwapChainBackgroundPanel) from C#. You're going to have to do your DirectX work in C++ as in the example you described. You can certainly combine the three (Xaml, C#, C++) as in this example, but I don't think a 100% C# app is possible.
The answer is wrong. It is possible to fully utilize C# throught a wrapper.
I did this myself with SharpDx which is actually one of the microsoft recommendations to use DirectX in C#.
As for the choice of XAML Library, Universal Windows App 10 or Windows Store App 8 is the way to go. Use a SwapChainPanel instead of SwapChainBackgroundPanel.
This may be a dumb question...
When I log into Starcraft 2 and see that beautiful UI, I can't help but wonder if it's designed using Windows Forms (.Net or C#). Is the login box just some kind of Windows dialog or do they do their own thing - whatever that may be?
Is it possible to get that much customization within Windows Forms?
No. Games and other apps that use DirectX to take control of the video device don't use WinForms or even the Win32 API for screen output.
StarCraft 2 most likely implements its own windowing and UI system, completely independent of the Windows API or WinForms library.
Yes, you can write an app in C# to perform similar DirectX graphics output, but using DirectX is not as simple as working with WinForms. I wouldn't recommend attempting to write a DirectX app as a way to teach yourself C# unless you are already very experienced with DirectX through other languages or tools (C++, mostly).
WinForms is fine for learning C# and whatever IDE tool chain you choose to use. After you're comfortable with C# patterns and terminology, then tackle learning how to write DirectX code with C#.
No. They use DirectX. DirectX bypasses normal windows and operates at alower level.
You can customize a form to a great degree. You have full control over painting it to look however you want.
I want to know how can I build UIs like skype using standard .Net/C#. Is it possible at all?
Thanks
You can use Windows Presentation Foundation to build more stylish GUIs than Windows Forms. It's pretty difficult to move from Forms to WPF. You usually need a good design tool, like Expression Blend.
AFAIK skype was built using Qt4, it's rather easy to build custom gui widgets, check
C++ GUI Programming with Qt4, 2nd Edition and this tutorial.
P.S. check this to see how to build qt4 on windows using MSVC 2008.
It might be possible to build such an UI using Windows Forms, but only with a lot of custom control code or a really good component suite. But as Chris said, WPF should be the tool of your choice when you want to use .NET.
Qt4 is a really powerful C++ framework, also powering apps like Google Earth. The Qt SDK, inclduing everything you need to get started (Compiler, IDE, documentation), can be obtained here. It's licensed (among others) under the LGPL.
Windows Presentation Foundation will give you the most flexibility, but it can be hard to use. An alternative to this is Sliverlight - Version 3 is going to be capable of being used outside of the browser (similar to Adobe Air), and in some ways provides an easier development experience. You might want to consider using some third party controls to give you access to nice functionality that you wouldn't get out of box.
To my acknowledge Skype is build with Delphi an a set of third party tools, so it for sure can be done without WPF.
Take a look at the components from DevExpress or TMS.