0

それで、私は Windows Phone 8 で遊んでいて、iOS アプリをそのプラットフォームに移植することを考えています。作業したいアセットはすべて揃っていますが、色合いを変更する方法があるかどうかはわかりませんでした。イメージの色。たとえば、iOS では、単に次のようなことを行うだけ[UIButton appearance] setTintColor:[UIColor redColor]]で、すべてのボタンが、使用する画像の上に赤い色合いになります。Windows Phone のアセットを更新して、このプラットフォームで使用したい正確な色合いにする必要があるかどうか、Windows Phone にそのようなものがあるかどうかはわかりません。

4

1 に答える 1

0

これはいくつかの方法で実現できます。1 つは、ボタンの赤い色合いのオーバーレイを定義するスタイルを作成することです。Visual Studio でボタンを作成し、それを (デザイナー内で) 右クリックして、[テンプレートの編集] -> [コピーの編集...] を選択します。

これを行うと、ボタンのデフォルトのスタイルが取得されます。ContentControl を含む Border 要素の場所まで下にスクロールします。Border は Child を 1 つしか持つことができないため、ContentControl を Grid でラップする必要があります。ContentControl の下に別のグリッドを追加し、背景を赤にして不透明度を低くして、透けて見えるようにします。

これはスタイルのボーダー部分だけです

    <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>

別の (より高度な) 方法は、色合いを設定できるカスタム コントロールを作成することです。このソリューションは上記のものと非常に似ており、同じスタイルを使用しますが、上記のように背景を赤に設定する代わりに、新しいコントロール (Button から派生する) にある DependencyProperty に (TemplateBinding を使用して) 背景をバインドします。

于 2013-07-17T03:39:35.803 に答える