对于UWP,我需要Grid
中的列宽使用不同的大小。此外,平板电脑和智能手机上的值应该不同。
以下代码使应用程序崩溃
<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>
与
键入OnIdiom.Phone在xmlns http://xamarin.com/schemas/2014/forms中找不到
该代码在
ViewCell
中。因此,我不能使用其他ResourceDictionary
,并且文件后面的代码中也没有OnSizeAllocated()
。是否可以同时使用
OnIdiom
和OnPlatform
? 最佳答案
OnIdiom
,就像OnPlatform
是必须声明的对象一样。就您而言,您要将OnIdiom.Phone
属性设置为不具有这些属性的对象。
您的Xaml应该看起来更像:
<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>