We have been examining the AppStylist to determine if this much needed functionality can meet the needs of our users.
When using the Runtime version, the Font property of a control that is "changed" is not actually changed, so what is actually done by this application to make the Font appear different on the screen?
Also, if relying on Table Layout Panel, the only "change" in AppStylist runtime that will force the screen to redraw in reaction to the changes for the Font is to switch from the Common States tab to the Properties tab, and then change the Border Style.
Loading a Style Library has the same issue.
We are trying to get our form to be able to AutoScale based on the user's font and font size characteristics, and we would really like to give them the ability to customize their appearance to their liking (using predefined sheets as a preference). However, with the application not having access to the correct "settings" for the font of the controls, and not having events fired that it can use to perform a layout, this won't work.
Any suggestions on how to make this functionality usable for our users?
Hi,
It depends which control you are looking at. For Inbox control, like a Panel, the StyleManager will actually set the Font property on the control. So if you have a panel, button, or other InBox control on the form that is being styled, you can check the Font property.
For the Infragistics controls, the font is resolved by the control. There is no actual property set anywhere, the control itself looks at the style manager to determine the current style that should apply. Most of the WinForms controls have methods that allow you to resolve the style yourself and get the actual on-screen appearance. But it depends which control and what part of that control you are looking at.
You could also get the styling information directly from the StyleManager class. I beleive this class also exposes an event that will tell you when the style changes.