2017-04-13 20 views
1

Windows Phone 8.1(RT)用のXamarinフォームでアプリケーションを作成しました。 XFをバージョン2.3.4.231にアップデートしました。目で私のアプリがへ:Windows Phone 8.1(RT)のXamarinフォーム - xaml例外

-windows電話8.1デバイス

-windows電話8.1エミュレータ

-Mobileエミュレータ10.0.14393(x86の)

それの仕事は大丈夫です。 しかし、私はWindowsのデバイス(アーム)にアプリを実行するとき、私は多くの例外があります。

-Cannot assign property \"ColumnDefinitions\": Property does not exists, or is not assignable, or mismatching type between value and property" 

-StaticResource not found for key ... 

-An item with the same key has already been added 

すべてのこれらのエラーは、XAMLに関連している:私は(XAMLから)たてがみの例外を別のスタートページを試してみてもらいます。 XamlCompilationOptions.Compileは使用しません。私のアプリ2.3.2.127

この小さな例えば

最終作業バージョンXF: 私はスタートページに変更しました。

-StaticResource not found for key StandardPadding 

これは私のページの一部です:

<StackLayout Padding="{StaticResource StandardPadding}"> 

App.xamlで私のリソース:

<Application.Resources> 
    <ResourceDictionary> 
     <Thickness x:Key="StandardPadding">16</Thickness> 
    </ResourceDictionary> 
</Application.Resources> 
+0

XAMLコードを共有できますか? – mindOfAi

+0

私は少しの例を私の質問に追加しました – FetFrumos

+0

ColumnDefinitionsはGridの一部です(基本的にはGrid.ColumnDefinitions) - 小さなページだけでなく、ページ全体にXAMLを提供する必要があります。 –

答えて

0

私はこの問題を解決し、私は例外を持っています。エラーは私のxamlコードにありました。 Xamarin Forms 2.3は、xamlのWindows OnPlatformをサポートしていません。だから私はこの拡張子を使用した:

public class XOnPlatform<T> : OnPlatform<T> 
{ 
    public T Windows { get; set; } 

    public static implicit operator T(XOnPlatform<T> onPlatform) 
    { 
     if (Device.OS == TargetPlatform.Windows) 
     { 
      return onPlatform.Windows; 
     } 

     return (OnPlatform<T>)onPlatform; 
    } 
} 

私はxamlコードでこのクラスを使用しました。しかし、XF 2.3.4では、Device.OSは時代遅れです。 xamlコードからXOnPlatformを削除しました。私はxamlコードでOnPlatformを使用しています。これは仕事です。ビンゴ:)

関連する問題