对Xamarin表单中所有按钮的影响

时间:2018-01-19 12:00:59

标签: xaml xamarin xamarin.forms uwp-xaml

我试图对我的所有按钮产生影响,但我似乎无法正确配置。

这就是我现在所拥有的:

<ResourceDictionary>
    <ControlTemplate x:Key="ButtonTemplate" >
        <Grid RowSpacing="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <ContentPresenter Grid.Row="0" Grid.Column="0" >
                <ContentPresenter.Effects>
                    <effects:ShadowEffect Radius="5" DistanceX="5" DistanceY="5">
                        <effects:ShadowEffect.Color>
                            <OnPlatform x:TypeArguments="Color">
                                <On Platform="iOS" Value="Black" />
                                <On Platform="Android" Value="White" />
                                <On Platform="UWP" Value="Red" />
                            </OnPlatform>
                        </effects:ShadowEffect.Color>
                    </effects:ShadowEffect>
                </ContentPresenter.Effects>
            </ContentPresenter>

        </Grid>
    </ControlTemplate>

    <Style TargetType="{x:Type Button}">
        <Setter Property="ControlTemplate" Value="{StaticResource ButtonTemplate}"></Setter>
    </Style>
</ResourceDictionary>

但这会引发Can't resolve ControlTemplateProperty on Button

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

正如您在Xamarin.Forms Guides所见,控制模板不适用于Button。

  

ControlTemplate可以通过设置应用于以下类型   他们的ControlTemplate属性:

     
      
  • ContentPage
  •   
  • 内容查看
  •   
  • TemplatedPage
  •   
  • TemplatedView
  •   

错误Can't resolve ControlTemplateProperty on Button有意义。 Button继承自View,而不是TemplatedView

关于你的要点,效果不能直接由风格消费,但你可以通过附加属性实现这一点。以下是一些很好的参考资料:

我希望它可以帮到你(抱歉我的英语不好)