-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[Bug] RadioButton can not be themed, and what can be themed does not work #13627
Comments
Hi, @Tommigun1980 - thanks for submitting this issue. TextColor appears to be working for me - if you could modify this issue to reflect the behavior you're seeing, however, I can take a closer look Issue13627.zip As for the proposed RadioButton.Color property, I agree that is an addition worth considering. For now, however, you can refer to these docs for more on customizing the RadioButton appearance! Also relevant to #13578 so feel free to follow there as well |
Thank you for the reply.
I would like to use the same color for the radio button as for my check boxes, but it's not possible. So when you use both controls it looks like the black radio button is disabled. |
This is what <RadioButton
TextColor="Red"
Content="Some text"
</RadioButton> |
This is a radio button next to a checkbox: If you mix and match them on a page, the radio buttons look disabled, as you can't edit the circle's color (or at the very least they clash very hard). |
@Tommigun1980 I had tested it on iOS as well, although I didn't share the screenshot earlier: Again, if you could modify the sample project I attached above to reflect the behavior you're experiencing, we may be able to take a closer look! As for the radio button color - yes, I understand what you're saying. As I've mentioned, there's a related issue for it already open #13578 and in the meantime, you can use a ControlTemplate to customize the RadioButton appearance as you wish, as per the docs also linked in my last comment. Please take a look, as that seems to be the best solution for now! |
Hi @rachelkang and thanks for the reply! Please find attached a modified repro project where the issue happens: I added a global color style for labels, which seems to "leak" into the radio button. It is absolutely essential to support global label styles in conjunction with a check box in a real-life app. (I have a faint recollection of reporting this exact bug earlier and that it got resolved, but it is very much possible it was some other component and I'm just misremembering.) |
@rachelkang Tbh I still don't think that defining a control template for a radio button is enough, as I want a native control to be used on platforms where one is available. If I defined a control template just to color it, I'd lose the native look and feel on platforms that support radio buttons natively. It also feels like extreme overkill to define the entire radio button's visual hierarchy just to be able to color it. Coloring components is such an absolutely essential feature that I don't see much use for controls that can't be coloured tbh. Radio button is also the only component in XF that can't be coloured (to the best of my knowledge). So as it stands the options are to go with a pitch black radio button, or go through a complex process that loses the native look and feel on supported platforms. Given the choice I can't decide which is worse so I'd still very much appreciate the ability to just color it. I honestly see it as an absolutely mandatory feature for the control to be usable in a real-world application. Thank you again. |
My problem was on the Android side. The radio buttons were black. They were practically invisible against my nearly black page background. The offered page reference was of no value, as it required radically changing the look and feel of my app. It sure would be nice if one could directly set the button color. I found a workaround: Changing the theme from "Theme.AppCompat.Light.DarkActionBar" to "Theme.AppCompat.DayNight" caused the buttons to render in a light color that contrasted nicely against my black page. That change was in the Android file styles.xml. The theme "Theme.AppCompat.NoActionBar" also works. Hope this helps someone. I just saw #10320 which suggests setting values for item name="colorControlNormal" and "colorControlActivated" and "colorControlHighlight" in styles.xml can also address this problem. Apparently all of this carries the side effect of tinting widgets and/or editable controls. The workaround has the additional side effect of putting an underline in Entry controls. The underline can be removed using Xamarin Community Toolkit and the lines
as described here. |
Description
Example:
TextColor="Red"
is ignored in the following:This makes it impossible to theme the radio buttons. I would say this is a bug as it's such an integral feature that surely it missing is not intentional? CheckBox.Color exists so the lack thereof is almost certainly a bug, no?
This is entering blocker territory imho because an unthemeable radio button just isn't usable in production!
Please note that as the radio button color can not be changed and the default is pitch black (at least on iOS), the control doesn't look intractable at all. If you use a radio button next to say a themed checkbox, the radio button looks disabled (or at the very least the colors clash very hard):
Tested on iOS only, don't know if problems happen on Android also.
Steps to Reproduce
See above.
Expected Behavior
RadioButton.TextColor
should be honoured.RadioButton.Color
should exist (which should set the color of the actual radio button).Actual Behavior
Setting
RadioButton.TextColor
does nothing.RadioButton.Color
doesn't exist.Basic Information
Environment
Show/Hide Visual Studio info
Build Logs
The text was updated successfully, but these errors were encountered: