Xaml Xamarin.Forms DynamicSource不';我好像不工作

Xaml Xamarin.Forms DynamicSource不';我好像不工作,xaml,xamarin.forms,Xaml,Xamarin.forms,我似乎无法使DynamicResource正常工作 下面是App.xml中的XAML: <Application.Resources> <ResourceDictionary> <Thickness x:Key ="DefaultInsets" Bottom="4" Top ="4" Left ="8"

我似乎无法使
DynamicResource
正常工作

下面是App.xml中的XAML:

<Application.Resources>
    <ResourceDictionary>
        <Thickness x:Key ="DefaultInsets"
                   Bottom="4"
                   Top   ="4"
                   Left  ="8"
                   Right ="8" />
    </ResourceDictionary>
</Application.Resources>
这似乎应该为
ContentView
中的
StackLayout
StackLayout
中的
条目
字段进行一致的插入。但我看不到这些

我做错了什么


更新:我也尝试过使用
静态资源
,但仍然没有成功。

我使用
资源字典
的以下类型。为了区分,我将上_边距设置为40,这是我的截图

这是我的
资源字典

   <Application.Resources>
    <ResourceDictionary>
        <OnPlatform x:Key="OuterPadding" x:TypeArguments="Thickness">
            <On Platform="Android">8 ,40,8,4</On>
            <On Platform="iOS">20</On>
            <On Platform="WinPhone">24</On>
        </OnPlatform>
        <!--  left, top, right, and bottom-->
    </ResourceDictionary>
  </Application.Resources>

其他答案可能对某些人有效,但最后我做错了:

InitializeComponent()
App.xaml.cs中从未被调用。

我有一个if-then语句,在进入
InitializeComponent()之前,该语句总是会碰到
return

如果未调用该函数,
App.xaml
对应用程序的其余部分不可访问,并且没有任何定义作为
DynamicResource
可用

因此,我将
InitializeComponent()
移动到if-then语句之前,现在它就像gangbusters一样工作


我希望这对别人有帮助

DefaultInsets是这里定义的静态资源。不同之处在于,StaticResource只对值进行一次查找,其中DynamicResource监视ResourceDictionary条目,监视对值的更改,并应用这些更改。如果您没有更改应用程序RD中的值,则应该使用StaticResource。ContentView是否与App.xaml在同一程序集中定义?@MaxHampton是的,如果我理解正确,它们在同一程序集中。所以我应该作为静态资源访问它,我明白了。但事实是,我以前也试过,但仍然不起作用。您认为我应该编辑OP以删除对DynamicResources的引用吗,因为这可能会混淆问题?唯一的区别似乎是您使用的是平台上的
。你的代码没有这个功能行吗?我会检查一下,同时你可能想将
ResourceDictionary
示例中的
OuterPadding
更改为
OuterMargin
,以便它与更新的
StackLayout
示例匹配。
   <Application.Resources>
    <ResourceDictionary>
        <OnPlatform x:Key="OuterPadding" x:TypeArguments="Thickness">
            <On Platform="Android">8 ,40,8,4</On>
            <On Platform="iOS">20</On>
            <On Platform="WinPhone">24</On>
        </OnPlatform>
        <!--  left, top, right, and bottom-->
    </ResourceDictionary>
  </Application.Resources>
    <StackLayout 
     VerticalOptions="Center" 
     HeightRequest="225" 
     Margin="{DynamicResource OuterMargin}" >
        <Entry
        x:Name="nameControl"
        Placeholder="Full Name"
        Margin="{DynamicResource OuterMargin}"
        />
        <Entry
        x:Name="passwordControl"
        IsPassword="True"
        Placeholder="Password"
        Margin="{DynamicResource OuterMargin}" />
    </StackLayout>