0

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

4

1 回答 1

0

您可以通过几种方式完成此操作。一种是创建一种样式,为您的按钮定义红色色调覆盖。在 Visual Studio 中创建按钮并右键单击它(在设计器中)并选择 Edit Template -> Edit a Copy...

当您这样做时,您将获得按钮的默认样式。向下滚动到包含 ContentControl 的 Border 元素所在的位置。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)到您的新控件(将派生自 Button)上的 DependencyProperty。

于 2013-07-17T03:39:35.803 回答