I'm attempting to theme the button panel on my status bar control, but first, it doesn't appear to even be visually present in the AppStylist, although the StatusBarStateButtonPanel is. Second, I found it in the side menu, and I've attempted to make changes, but nothing seems to affect it. I'm guessing something else is overriding the preferences I set, but I'm confused about which ones do what.
I'll attach my style library file, and if someone wants to check it... That'd be awesome :) The button panel is supposed to behave very similarly to what the statebuttonpanel does, which shades of green on hottracked, pressed, etc.
Hello Daryl,
I loaded the style library into a simple test application, and I can see the bright green styling on the StatusBarPanelButton. This leaves me to believe that your application is setup differently. Other panels on your UltraStatusBar are being style correctly, right?
I've attached the sample which loads up the style library automatically. Pressing button1 on the form will bring up the AppStylistRuntime which will allow you to see and manipulate the style library. Please test my sample and verify that the styling appears as expected.
Thanks,
Chris
I didn't realize that In-Memory designer was even possible. That's cool!
You were correct.. The rest of the panels are behaving correctly, all except for the buttons. Which has me very confused. They have a yellow layover and look a lot like Office 2007 style, which is set in the code, but is supposed to be overridden by the loaded theme, if the user chooses to do so. It works for everything else.. Why would it fail on this?
The problem is, I already tried that. I set the ViewStyle to Default and it worked. The buttons behaved as I would expect. However, the bar then looks completely different. It doesn't fit the rest of the theme. It seems like the bar base then disrespects the theme settings, because it looks like the one in the VS designer.
Correct. The issue appears to be specific to the implementation of the Office2007 style for the UltraStatusBar. In its current state, there is no way to use the Office2007 style and change the colors of the StatusBarPanel buttons via AppStyling.
I don't know the exact design of your application, but I get the feeling that it is designed so that by default it uses Office2007 styling, but also gives it's users the ability to change the theme via AppStyling. If this is the case, you can still use the Office2007 theme for your default application. You just need to make sure that any style library you load, sets the ViewStyle on the UltraStatusBar ComponentRole to something other than Office2007/Default. The Office2003 style is the closest style to Office2007. You may have to change the ButtonStyle on the ComponentRole and the BackColor and BackGradient on the UltraStatusBar UIRole to better match the Office2007 theme.
Ok. I'll try something along those lines. The theme I'm loading is actually based on Office 2013, but the program was designed to use Office 2007 a couple years ago. We're just trying to update the interface.
I don't know if you're still following this post or not, but I tried what you said, and it didn't help. I set the status bar style to 'Default' and it displayed the theme settings. Turns out I had a lot of theming stuff messed up cuz I didn't understand how it all worked. But I got that cleared up, and it works fine. However, I still can't change the buttonpanel font color after the theme is applied. I wanted the users' tasks button font color to turn red and bold when the user has incomplete tasks, but only the bold works. I ended up changing the theme to style the buttons with red text, but that's kinda a lousy work around, and the button text is still red even when the user has no tasks.
So to make sure I'm understanding this correctly, your application is being styled via a style library, but you still want the ability to change the font color programmatically, By default, the styling defined in a style library takes precedence over any styling set on the control-level within the application itself. This is done intentionally, as we want people to be able to quickly take advantage of the Application Styling Framework without having to remove all the existing styling within their application.
You have 2 possible options:
I hope this helps.