I am using an UltraTabbedMdiManager to allow users to switch between regular MDI and Tabbed MDI.I also use the UltraFormManager to customize my form captions - including the MDI children.
Normally (for other style sets) I have no problem making this look good.In one case however I display a blue background for active child form captions, and for the back color of the tabbed MDI Tab area, but use a grey back color for inactive child form captions.In this case I have 2 problems:
When using normal MDI mode - On the MDIChild form captions I can get the buttons to blend in with the caption background only if I set the UltraFormManager.Style to Office2010. But that does not display the buttons unless the form has focus. If I change the style to Office2013 then the buttons are always displayed - but they are also always Blue.[There is no way to set different colors for Active / Inactive states, and Transparent does not seem to work]
When using tabbed MDI mode - I can't get the buttons on the tabbed area to 'blend in' with the background.I tried to set both the back color and border color of the buttons to Transparent so that they would adopt the color of the caption/tab area background but this is ignored. They are always painted as 'normal' buttons.
I am assuming there is a Style, DisplayStyle, ViewStyle or some such that i have not found yet that will tell it to pay attention to the colors I set but i can't find it.Or maybe ResolutionOrder would help.
Any ideas would be appreciated.
ThanksMike
Hello Mike,
I’ve tried to reproduce this issue on my side, please see attached sample, and I am not sure if I understand your issue completely. What do you mean by buttons don’t “blend in”? From your response it seems that you are using *.isl to style your form, so it seems that without this isl I cannot reproduce this issue, so could you please attach this isl in order to be able to test it. Also please review my sample and let me know if it reproduce your issue without applied *.isl.
Once I have this additional information, I will be glad to further investigate this issue for you.
I am waiting for your response.
Yes we provide about 7 or 8 isl files for our app. all except this one are working as we want.
When I say 'blend in' I mean the button should not look like a button. It should just appear as a white X on the Blue or Pale Gray background of the tab.It should not look like a button until the user mouses over it.
Using the attached file the button blends into the active tab but has a pale gray background [therefore looking like a button] on those tabs that are not active. [They have the blue background]
Pale grey background is the normal color of my buttons.I have overriden the Ribbon/UltraForm/DockPane CaptionButtons to have either a transparent background or to have our blue color, and that works file. But I can't find an override to set the TabbedMDICloseButton to Transparent.
You can also see that I had to set the UltraFormManager.Style to Office2010 in order to make them blend into the caption when using standard MDI windows.(Using Office2013 caused the background to remain blue when the form does not have focus. But Office2010 makes the buttons dissapear when it doesn't have focus - which a lot of users dont like.)
Sorry I guess I had not understood that the settings in the application would be ignored if the other isl files used the 'Default' Resolution Order.
I had thought that the default was to apply all styles in code first.
Thanks. That works.
If you set the resolution order to ControlThenApplication it will check if you have set a property in your code and apply it over a property in the AppStylist. If you have issues only with this Windows8.isl file you can leave the ResolutionOrder in all other *.isl in your application to the default value which will ignore the properties you set in your code. This means that those properties from my sample will be ignored in every *.isl file in your application with the exception of the Windows8.isl. Please let me know if I am missing something here.
Another approach to make the Vista style expansion indicators with the Windows8/Office2013 style scrollbars only from the *.isl. You could set the DisplayStyle to Standart for the scrollbars and then use custom images for the expansion indicators. You can set those images right below the Display Style property.
As for how to show the buttons on the inactive panes when you use Office2010 only from the AppStylist, I don’t believe this is possible. That feature is part of the Microsoft Specification for Office2010 and this is the intended behavior.
Please let me know if you have any additional questions.
So there is no solution that can be applied using only the ISL file?
Since the app does not, for the most part, know which ISL file the customer is using we can't really override anything within code. All changes need to be applied by the ISL file itself.
I do have some code that looks at the 'resolved' colors for certain components so that we can make the scroll bars [for example] in another third party tool match those set for all the Infragistics controls. But that works no matter which ISL file is applied. We dont really know which file it was they applied - we simply load whichever one they point to. [they may even have provided/created their own]
Are there any plans to separate the scrollbar appearance from the expansion indicator appearance in the UltraTree?(Alternatively, to add a new ViewStyle that uses the triangle expansion indicators and the Win8/Office2013 scroll bars)
Thanks, Mike
Thank you for the provided information and the *.isl file.
To make the caption buttons to “blend” you could set the Resolution Order for the FormManager in the Appstylist to ControlThenApplication. Then in your code in the Activated and Deactivate events of the child form to give their caption buttons the appropriate colors so that they “blend in”. Another thing you have to do is to set the FormStyleStettings.Style property of the FormManager to Office2013. That is because as a standard Office2010 does not display the caption buttons if the form is inactive. As a result of that our controls also behave this way.
As for how to make the WindowsVista style display Office2013 style scrollbars on the tree, you could set the ResolutionOrder for the tree to be ControlThenApplication. After that in your code add the following line:
this.ultraTree1.ScrollBarLook.ViewStyle = ScrollBarViewStyle.Office2013;
I have attached a sample which demonstrates my suggestion.
There also seems to be a problem controlling the scroll bars in the UltraTree.
If I set the tree's ViewStyle to WindowsVista in order to get the 'triangle' icons instead of the +/- squares it stops paying attention to some [all?] of the scrollbar settings. I want the scroll bars to look like Windows8 - no thumb glyph or button borders - but it does not allow me to control that unless I set the Default Style [the one for 'All Components'] to Office2013.
Unfortunately doing that causes me to lose control of the borders on my main MDI window. I think these borders are controlled by the RibbonBorder as I'm using the RibbonCaption on that form. With the default style set to Office2013 it displays only a very narrow border on both sides of the form and no border at all on the bottom. (If I change the default to 'Standard' then the MDI form borders are OK, but as I said above the scroll bar on the UltraTree is wrong.)
Is this just a 'feature' of the WindowsVista style on the UltraTree ['cos you need todraw only vertical scroll bars]?If so, could you add a new style for Windows8 that displays the Vista/Win8 style expansion glyphs and the Windows8 style scroll bar.
Thanks