<Button Style="{StaticResource RoundedButtonStyle}" IsEnabled="False" ToolTip="写EPC" Command="{Binding WriteEpcCmd}">
            <Button.Content>
                <StackPanel>
                    <TextBlock Text="&#xe626;" FontSize="22" HorizontalAlignment="Left" Foreground="#0BA29A" VerticalAlignment="Bottom" />
                    <TextBlock Text="EPC" HorizontalAlignment="Right" FontSize="11" VerticalAlignment="Top" Foreground="#0BA29A" Margin="7,-4,0,0" />
                </StackPanel>
            </Button.Content>
        </Button>
<Style x:Key="RoundedButtonStyle" TargetType="Button">
        <Setter Property="Width" Value="35" />
        <Setter Property="Height" Value="35" />
        <Setter Property="Margin" Value="5,0,5,0" />
        <Setter Property="Foreground" Value="#3d80fc" />
        <Setter Property="HorizontalAlignment" Value="Center" />
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="RenderTransformOrigin" Value="-1.819,-4.886" />
        <Setter Property="IsEnabled" Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <Ellipse Name="roundButtonBackground" Fill="White" StrokeThickness="0.5">
                            <Ellipse.Stroke>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Offset="0" Color="Gray" />
                                    <GradientStop Offset="1" Color="LightGray" />
                                </LinearGradientBrush>
                            </Ellipse.Stroke>
                        </Ellipse>
                        <Ellipse Margin="15,5,15,50">
                            <Ellipse.Fill>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Offset="0" Color="WhiteSmoke" />
                                    <GradientStop Offset="1" Color="Transparent" />
                                </LinearGradientBrush>
                            </Ellipse.Fill>
                        </Ellipse>
                        <ContentPresenter Name="GelButtonContent" HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding Content}" />
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="roundButtonBackground" Property="Ellipse.Fill">
                                <Setter.Value>
                                    <RadialGradientBrush>
                                        <GradientStop Offset="0" Color="Navy" />
                                        <GradientStop Offset="1" Color="DeepSkyBlue" />
                                    </RadialGradientBrush>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="roundButtonBackground" Property="Ellipse.Fill">
                                <Setter.Value>
                                    <RadialGradientBrush>
                                        <GradientStop Offset="0" Color="#ffcc34" />
                                        <GradientStop Offset="1" Color="#cc9900" />
                                    </RadialGradientBrush>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="True">
                            <Setter Property="Foreground" Value="#3d80fc" />
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter Property="Foreground" Value="Gray" />
                            
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
<h2>如何使用样式表在IsEnabled=false时更改TextBlock文字颜色</h2>
<p>您可以在样式模板中的IsEnabled=false触发器中,通过Setter设置TextBlock的Foreground属性来更改文字颜色。例如:</p>
<pre><code class="language-xml">&lt;Trigger Property=&quot;IsEnabled&quot; Value=&quot;False&quot;&gt;
    &lt;Setter TargetName=&quot;textBlock1&quot; Property=&quot;Foreground&quot; Value=&quot;Gray&quot; /&gt;
&lt;/Trigger&gt;
</code></pre>
<p>其中,textBlock1代表需要更改颜色的TextBlock控件。将上述代码加入样式模板中即可实现IsEnabled=false时更改TextBlock的文字颜色。</p>
WPF按钮样式 - 禁用状态下更改文字颜色

原文地址: https://www.cveoy.top/t/topic/nwwj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录