Forum Xamarin.Forms
We are excited to announce that the Xamarin Forums are moving to the new Microsoft Q&A experience. Q&A is the home for technical questions and answers at across all products at Microsoft now including Xamarin!

We encourage you to head over to Microsoft Q&A for .NET for posting new questions and get involved today.

What is involved in creating or more deeply customizing GTK controls?

bsimms2086bsimms2086 Member ✭✭
edited March 29 in Xamarin.Forms

I'm working on a project that's Android/GTK cross-platform, and one of the main goals is a mobile look-and-feel for the GTK app (Its on a Pi with a touchscreen). I've gotten started working with custom renderers and while this allows me to get closer to mobile style controls in some cases, Many of the controls offer very little customization with custom renderers, at least as far as I can tell.

For example, with a SearchBar control, I can make some minor changes to the GTK renderer, but some of the most visually important parts of the control, like the search icon, are set in a private field with no methods to access them, in the Forms.Platform.GTK SearchEntry class that, to my knowledge, I am unable to do any work on within my project. (Please, if I am grossly misunderstanding how to work with these files, let me know).

Basically, my questions is, where do I start with this? Am I over complicating what's involved in more significantly changing the look and feel of these controls while keeping basically all the same functionality? If I need to create new controls, do I have to do them in MonoDevelop working with GTK widgets? Or is this something I can do in the same environment and language as my project with the Platforms.GTK library? Is there a completely different option I'm not aware of?

There are almost no resources other than repositories that discuss work with Xamarin.Forms.GTK in general, nevermind in depth custom renderer work, so any insight, guidance, resource or instruction is beyond appreciated. Thanks very much.

Sign In or Register to comment.