A lot of them have hard coded square small and 2 squares sized large tiles. I am looking for something flexible enough for at least the size ratio to be adjustable to be more flat.
Telerik has a flexible approach (you can choose any row and column span for a tile) but their implementation is either laughably primitive is still too new, especially the drag and drop part.
Devexpress has nice drag and drop, but is stuck doing 1x1 and 1x2 sized tiles.
DevComponents is my favorite. With WPF, you can copy most of the XAML you would otherwise use in a Metro application - so don't feel that you can't emulate Metro on the desktop. Many have already done it. Certainly, many more will.
But there are some downsides to Desktop development. Although desktop development is very powerful, and it is, Metro development in Windows 8 has considerable advantages. Having said that, desktop development can take advantage of Visual Studio 11, too.
I'm using the Devcomponents DotNetBar. It has pretty flexible Metro tiles.
metro-ui should be used with WPF and that will work great there too.
If you want to implement Metro-UI in windows from you have to create your own user control.
Related
I am currently learning WPF framework; I have some past (not much though) experience with Winforms. One problem I've had in both is that the menubar does not look native. I've found a workaround in Winforms, but I haven't been able to find anything for WPF. I've not had this problem in other frameworks I've used, particularly Qt.
In many pics I've seen, it looks native enough in Windows 7, but not Windows 10. I included some pics.
How it currently looks:
How it should look:
Thanks in advance!
Edit
While I have not seen the possible duplicate link, I am aware of setting the foreground/background on WPF controls. That link doesn't really answer my question. I don't want to come up with my own style at this point; all I want to do is make controls look native.
If custom styling is the only way, that's fine, but if there is another way, that would be preferable.
Thanks!
I don't think there's a quick fix to get what you want. WPF renders using DirectX, allowing for much more flexibility in styling applications. A WPF app should render exactly the same way on any version of Windows - it will not automatically adopt a native look and feel (that was actually one of the main selling points of the technology in its early days).
While MS made the default styling somewhat close to Windows at the time of release (Vista, I think?), if you want WPF controls to have a particular look you're going to have to style them yourself.
I´m designing an desktop app in WPF. My problem is the resolution, the minimum resolution that can support the app is 1024x768(for crt monitors) and in this resolution maximizing the app seems okay and good, but when i try the app in higher resolution then the gap between my components and their size according to resolution seems very very awful and unprofessional specially in very high resolution the empty space which make it more worst and ugly. please suggest me some easy fast guide or documentation please.... thank you
When designing your WPF application, it's advisable to use one of the predefined layouts such as stacklayout, grid, dock panel etc. as these tend to be more responsive than defining the your own static layout.
Check the link below on how you can use these layouts.
https://wpftutorial.net/layoutproperties.html
This question already exists:
Closed 11 years ago.
Possible Duplicate:
WPF versus Winforms
I have been using visual C# for a while now, I have made some apps in the window forms but never really explored the WPF apps. Based on what I have discovered it pretty much is the same as a winforms just in a different type of environment and the XML. So why is there such a WPF app? what makes it different form a winform and what is it mainly used for?
There are many reasons to move WPF. You will be able to find many reasons by simple google search. It's the new trend and when it comes to Windows application development the technology has been focusing to WPF rather than Winforms.
As Tom also has mentioned above this thread gives you many points.
My opinion is there is no big reasons not to go for a WPF if somebody is going to develop a windows application from the scratch.
Actually it depends on your real need. Desktop oriented application tends to go with winform. Both get compiled by the same compiler to produce the same thing; both utilize the same resources to run on the target platform, but WPF has more graphics effects that many people would favor it from the start. Winform offers userfriendly design controls though.
Some differences off the top of my head:
Separation of UI and 'code-behind', so that designers can allegedly design the UI while the developers develop the business logic. A much cleaner separation than traditional WinForms.
Improved graphics rendering. The vector graphics are vastly superior to WinForms graphics -- just zoom in on some letters in a WPF app vs. a WinForms app and you'll see sharp edges in the WinForms app, but smooth edges in the WPF app. Pretty awesome.
A much more flexible UI model in WPF, where you can have buttons inside of lists which are inside of grids, since it's all just XAML. WinForms requires you to build those types of controls and is much more limiting.
Those were just a few. Hope this helps. Good luck!
I've been writing a small desktop gadget-type application that displays scrolling text along the bottom of the screen (Similar to the old CNN news ticker), however the performance of GDI is just unsatisfactory (As high as 8-12% on a quad core and 20% on a single core) even after I've attempted to clean out bottlenecks.
I was considering using OpenGL instead to render everything, but I don't know if that is a reasonable option to require users to have hardware acceleration for a tiny app like this.
Does anybody have any input on this?
If you're comfortable with using OpenGL and your intended users are happy with the additional dependencies that OpenGL brings then I say go for it. :)
In terms of staying with GDI, I'd make sure you're rendering the text a few times as possible (through such techniques as rendering to bitmap and just scrolling that instead).
If neither one of those two options sounds appealing then there's always DirectX.
You could write the app in WPF and let WPF handle the acceleration for you (it's backed by DirectX).
I wouldn't want to install open gl for a program like that. You say that you "attempted" to eliminate the bottlenecks, but it does not sound like you succeeded. Like lzcd mentioned, there are other ways to scroll text than to repaint it constantly. Why not just draw to a bitmap and scroll that?
I'm using WINFORMS not WPF.
I just know basic c# .net gui programming. I donot want the traditional windows look. I want to have my own custom look (eg. gtalk, antivirus softwares, media players, google chrome).
Actually I'm inspired by google's PICASA software. Its awesome. I want to do something like that.How can I do that? If there is something I should learn please point me.
Also I may have to write my own custom controls (like modified tree view etc..) I guess. Please give some good learning resources.
This article describes how to draw custom windows. The author also shows how to draw non-rectangular windows.
If you could use WPF instead of Windows Forms, this is a good article about customizing window drawing:
http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16379/
There is also a question with some good answers here on SO:
Creating custom forms in WPF?
Update:
I think that skinning and custom drawing is fun to do from a programmers perspective, but I also think that there is almost no benefit for the user.
The creators of the platform you are developing for might have put a lot of effort into the design of their windowing toolkits.
If you just want to change some visual aspects of your application you also should take into account that you might miss some important other aspects of UI design:
consistency
accessibility
aesthetics (if you are overdoing
effects, gradients, ...)
internationalization
...
As you are developing for Windows, you also lose the skinning ability of the OS itself. And I think that some of the skins that come with newer versions of Windows are pretty good.
You can try any of the following:
telerik
Syncfusion
(source: componentsource.co.jp)
Or other components.
They do make your UI pretty.
Edit: if you want to study how they do it, you can buy the source code-- along with documentation and understand from there.
There are some commercial control libraries available.
I can recommend the Krypton Suite. It consists of the free Krypton Toolkit (which contains a lot of skinnable controls) and other non-free controls (Navigator, Ribbon, Docking, Workspace). It has some built-in palettes and renderers that allow you to make your UI look like Office 2010, Office 2007, Office 2003, ...
You want to look for +winforms +skinning. I haven't tried these, but the first hits don't look bad. Most decent skinning tools will be paid for.
From what you said, you want to develop your own custom controls. You have some frameworks for this like Qt which can use Direct3D for hardware accelerated graphics. It also have a Visual Studio plugin. There is a free LGPL version and a commercial version of it.
I remembered about Qt because you mentioned Picasa and as far as I remember, I heard the Picasa UI has been written through Qt.
You can try using "SetWindowRgn(..)" to set an arbitrary region for your window. This may range from giving a rounded rectangle shape to giving a weird looking shape to the form!
Check this out: Link.
There is another option if you are working in Vista(aero enabled), ie you can check out DwmExtendFrameIntoClientArea(..) function here: link text
You can set the form's border style to 'none' and go on to create your custom form! You then might have to create custom buttons to carry out tasks like close, minimise, maximise etc. You might even need to write code for drag and drop events..
For the background, you might need to have a look at the gradient fills to give a great effect, otherwise you can use great looking pictures as Background..! But the latter option isnt good unless you have really good pic.