6

私はこのようにしました:

    <Style x:Key="Button" BasedOn="{StaticResource LoginButton}" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <Border CornerRadius="4">
                        <Border.Background>
                            <LinearGradientBrush EndPoint="0,1">
                                <GradientStop Offset="0" Color="#0863a5" />
                                <GradientStop Offset="1" Color="#00457d" />
                            </LinearGradientBrush>
                        </Border.Background>
                    </Border>
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Grid>
                            <Border CornerRadius="4">
                                <Border.Background>
                                    <LinearGradientBrush EndPoint="0,1">
                                        <GradientStop Offset="0" Color="#508fbd" />
                                        <GradientStop Offset="1" Color="#397ab0" />
                                    </LinearGradientBrush>
                                </Border.Background>
                            </Border>
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>

これを行うより良い方法はありますか?コントロール テンプレートにさらに多くのコード行が含まれているシナリオがあり、BorderBrush などの単一のスタイルのみを変更する必要があります。コントロール テンプレートを Style.Triggers から効率的に変更するにはどうすればよいですか?

4

1 に答える 1