Sure, you could still customize the look. Just write a custom renderer. However, writing a custom renderer is kind of a pain, and requires platform-specific implementations. Xamarin and Xamarin.Forms is here to help us write cross-platform code, and I prefer to keep as much as possible in the cross-platform layer.
I'm happy to say that there is some really good news, everyone: Starting with Xamarin.Forms 3.0, the VisualStateManager was introduced, allowing you to have complete control over how a given UI element looks when disabled! This is a super nice addition, and I was unreasonably excited when I learned about it. Let's dig in!
Because I want all my buttons throughout my app to have a consistent look and feel, I defined a style in the App.xaml file of my cross-platform project:
The default behavior for setting the IsEnabled property of the button makes it look like the following (on iOS... This is approximately the same on Android):
Let's go back to our App.xaml file, and add a second style... This one with some extra code to make use of the VisualStateManager:
If you're interested in seeing this sample code, have a look at my GitHub repository. Feel free to use the comments below to ask any questions!