Is it possible to mix OnIdiom and OnPlatform in XAML (Xamarin.Forms)?
mobile-development, mobile-devices, xamarin, xamarin.forms, xaml
Solution
`OnIdiom`, just like `OnPlatform` is an object you have to declare. In your case, you're setting `OnIdiom.Phone` property to an object that doesn't have those.
Your Xaml should look more like:
<ColumnDefinition>
<ColumnDefinition.Width>
<OnIdiom x:TypeArguments="GridLength">
<OnIdiom.Phone>
<OnPlatform x:TypeArguments="GridLength" iOS="*" Android="*" WinPhone="100" />
</OnIdiom.Phone>
<OnIdiom.Tablet>
<OnPlatform x:TypeArguments="GridLength" iOS="*" Android="*" WinPhone="200" />
</OnIdiom.Tablet>
</OnIdiom>
</ColumnDefinition.Width>
</ColumnDefinition>
Problem
For UWP I need a different size for the width of a column in a `Grid`. Additionally, the value should be different on tablet and on smartphone. The following code crashes the app ``` <ColumnDefinition> <ColumnDefinition.Width> <OnIdiom.Phone> <OnPlatform x:TypeArguments="GridLength" iOS="*" Android="*" WinPhone="100" /> </OnIdiom.Phone> <OnIdiom.Tablet> <OnPlatform x:TypeArguments="GridLength" iOS="*" Android="*" WinPhone="200" /> </OnIdiom.Tablet> </ColumnDefinition.Width> </ColumnDefinition> ``` with Type OnIdiom.Phone not found in xmlns http://xamarin.com/schemas/2014/forms The code is in a `ViewCell`. So I can't use an additional `ResourceDictionary` and also `OnSizeAllocated()` is not available in the code behind file. Is it possible to use `OnIdiom` and `OnPlatform` together?