Windows Phone 8按钮色调颜色和图像

时间:2013-07-16 21:44:45

标签: button windows-phone-8

所以我正在玩Windows Phone 8,考虑将我们的iOS应用程序移植到该平台上,因此我拥有了我想要使用的所有资产,但有一点我无法弄清楚是否有些东西到了更改图像的色调。例如在iOS中,我可以简单地执行[UIButton appearance] setTintColor:[UIColor redColor]]之类的操作,然后所有按钮都会在我使用的图像上显示红色。我只是不确定是否有类似于Windows Phone的东西,如果我需要更新Windows手机的资产,以获得我想用于此平台的确切色调颜色。

1 个答案:

答案 0 :(得分:0)

你可以通过几种方式实现这一目标。一种是创建一种样式,为您的按钮定义红色色调覆盖。在Visual Studio中,您可以创建按钮并右键单击它(在设计器中)并选择编辑模板 - >编辑副本...

执行此操作时,您将获得按钮的默认样式。向下滚动到包含ContentControl的Border元素的位置。边框只能有一个Child,因此您需要使用Grid包装ContentControl。在ContentControl下添加另一个Grid,并为其指定一个红色背景和低不透明度,以便您可以看到它。

这里只是样式的边框部分

    <Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="0" Margin="{StaticResource PhoneTouchTargetOverhang}">
    <Grid>
        <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
        <Grid Background="Red" Opacity=".4"></Grid>
    </Grid>
</Border>

另一种方式(更高级)是创建一个自定义控件,允许您在其上设置色调颜色。此解决方案与上面的解决方案非常相似,并且将使用相同的样式,但不是将背景设置为红色,而是将背景(使用TemplateBinding)绑定到新控件上的DependencyProperty(将从Button派生)。