19

UWP の場合、a の列の幅に別のサイズが必要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>

xmlns http://xamarin.com/schemas/2014/formsに OnIdiom.Phone が見つかりません

コードはViewCell. したがって、追加を使用することはできず、コード ビハインド ファイルでResourceDictionaryも使用できません。OnSizeAllocated()

OnIdiomと の併用は可能OnPlatformですか?

4

5 に答える 5

29

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>
于 2016-10-18T20:10:36.117 に答える