Font Selection for Form Application - c#

I am bit confused about chosing font for my winform application.
I want to chose a font which will go smoothly on Win7/XP/Vista. My application has been designed with windows Office2007 like bluish theme, and also has future requirement about provision for selecting other standard themes.
Currently all my user controls/forms and all other controls have arial fond. But it doesn;t look cool.
Can anybody know any good tricks/tips to chose a smart font for winapp?
Or are there any guidelines to check for cool fonts for your apps?
Please suggest.
Thanks in advance,
Kapil

There's a bug in Winforms [2008] where the default system font is not used. See this question and this post for more info, but the trick is to set the default app font to SystemFonts.MessageBoxFont which will give the correct system font. Make all your forms and controls inherit this, and the app will use the system font.

Use the system default. In Windows Vista and 7 that would be Segoe UI. It makes your app look consistent in the rest of the OS; otherwise, it will just stand out, and not always in a good way.

Related

.NET Winform - No images and default font (resources) during the run time

I'm using the .NET UI framework MetroModernUI, but I get the user interface like the picture below :
No images are showing in the run time
Font have been replaced by the default font, the color as well
Others infos:
The custom font comes from Metro Modern UI
All images are embedded in the app, some are fetched using an image fetcher function, others are initialized with their default picture.
This issue appears on Windows 10.
https://user-images.githubusercontent.com/23088305/39079490-e5530f5e-44e9-11e8-8d47-9b63939c3cfd.png
Does someone has any clue what can affect the app like this ?
Metro Modern UI link : https://www.nuget.org/packages/MetroModernUI/
Nevermind,
I found out that this framework MetroModernUI does not support Windows 10 high contrast theme when activated
Setting available in :
Setings > Personalization > Colors > Related Settings (High Contrast settings) > Choose a theme
When this setting is off, the app render well.
Edit: If someone find a way to support this feature without removing the framework, I will like to know how

Desktop Metro applications

I wonder how to create Zune-like apps (I mean Metro style). But I don't want them to be Windows Store apps (I have already installed Windows 8 platform with VS2012). Could you tell me if I should download some style pack or something like that? Maybe there are some libraries implementing Metro? If yes, plese make me know which one is the best.
Thanks in advance.
There is a Theme for WPF called Cosmopolitan that emulates the Metro style. Now it just gives you the flattened look on the controls for free. You're on your own with Layout, Animations, and Navigation.
Consider WPF UI framweork for building apps like zune
http://mahapps.com/MahApps.Metro/
Due to naming issues (read: MS didn't want to get sued and apparently couldn't properly trademark the word Metro, go figure) there is no such thing as Metro anymore.
That style was renamed to be "Windows Store". So I'm not 100% certain of what it is you are asking for.
Also, contrary to the name and potentially misleading marketing speak on their site, a Windows Store App does not have to be published and sold through the Windows Store.
You might read this for some "clarification":
http://www.zdnet.com/microsoft-finally-comes-cleaner-on-post-metro-naming-plans-7000004151/

Non-Square Icon on Windows Form?

Is it possible to display an icon in the top left corner of a Windows Form that is a different shape than the standard 16X16 pixel icon?
It appears that Skype has an icon that is much wider than standard:
Is it possible in a Windows Forms app?
You can do this but it's probably more effort than it's worth just to have a larger icon.
Hans has posted an article that roughly points to the information needed to figure out an answer this question, but hasn't posted an answer itself and so I'll clarify.
The old (pre Vista) way to do this is to override the WndProc method on your form and handle the WM_NCPAINT message. Note that this means that you are now responsible for drawing the entire window frame (the window border, title, close / restore icons etc...), not just the icon - i.e. this is a lot of effort to do a relatively minor thing.
The newer (post Vista) way to do this is to use the DWM API - note that this API is not directly exposed through the .Net Framework and so you need to use P/Invoke for this in C#. The bit that you want to do is the section titled "Drawing in the Extended Frame Window", where you extend the area that you are responsible for drawing outside of the normal client area and into the window frame. This is less hassle than it used to be (you don't have to draw things like the close buttons), however still means that you take responsibility for a lot of things that you wouldn't normally, like hit-box testing for resizing and moving.
Basically its nowhere near as simple as providing a larger icon and for most applications its probably way more effort than its worth, however you can do this in C# and that article should get you started if you really want to give it a try.
I know your looking for a plain code way to do this, but I invite you to check out DevExpress manged (yes it's third party forgive me), just google it.. I seen this thread and I started asking questions at devexpress with support and got some impressive results that you might be interested in.
Here is the ticket I put in... http://www.devexpress.com/Support/Center/Issues/ViewIssue.aspx?issueid=Q399941
Here is the result... http://www.devexpress.com/Support/Center/GetSCAttachment.ashx?id=684270b5-faed-415e-9010-64338523f8cf
So Far I used this on Xp, Vista and Windows 7 without problems using winforms only.
I hope this helps or gives you another option if the windows API don't pan out like you want on different versions of windows.
Thanks,
David
Don't think it's an icon, if you mean precisely the ICO image format.
Considering the Skype window is definitely ownerdraw window, that image can potentially be whatever you want format.
The trick is, basically, render an image skipping the pixels of some color (background color) of the "icon", so render it in "transparency".
This article can give you a hint:
Drawing Transparent Images and Shapes using Alpha Blending
It's old, but always a good one.
Yes. Override WndProc and implement WM_NCPAINT.

c# include personal font into program

In my application written in c# I use for the UI components a personal font that is not present in the standard installations of windows.
I wish include the font into the program, to show the font correct in all the pc where the program runs, but I wish avoid to install the font in the windows\fonts folder, to avoid the use of the font for other things... it's possible this?
thanks in advance
Look at PrivateFontCollection

Font linking in the registry

A few years back, I created a WinForms application that has been successfully deployed. The next version of the application must support Chinese and Korean characters. For aesthetic reasons, my client wanted all the text in the application displayed with the Arial font family.
However, Arial doesn't support Chinese and Korean characters. On most platforms, the Windows Uniscribe Font Fallback mechanism adequately chooses a font to display the East Asian characters. But on English Windows XP, the font it picks is terrible.
I've been looking at resolving this problem with Font Linking. This would allow me to specify which font should be used when Arial can't display a character. This seems like a very elegant solution.
The problem is that the article I linked to says that adding font links through the registry is not officially supported. Also, changing the font links in the registry would impact the whole computer and not just my application.
Does anyone have experience with added font links? Did it work? What are the situations that are going to bit me later?
The "not supported" clause in the linked article is telling you that you can't call Microsoft Support and complain because you used Regedit.exe incorrectly and messed up the machine. It doesn't say that font linking isn't supported.
You can't really affect another program negatively by doing this. Font linking doesn't replace glyphs, only substitute missing ones. Such a program would previously not render text correctly. It will show readable text after you're done. They'll buy you a very nice dinner and some dancing girls.
Can you use the font Arial Unicode MS?
That's what I use to display Chinese fonts in charts and PDFs.
So, the problem is that you want to use one font if the characters match some criteria, and another font if they don't, right?
So, why not just write some code that, when the text is updated, checks the criteria and sets the font appropriately? It may be a little bit of busy work, but if it's done all over the place I bet you could encapsulate it in a custom control.
Sometimes it's a lot easier to just do the work than to try and get clever with a bunch of system settings. Not as fun, admittedly, but less likely to cause problems.

Categories

Resources