繁体   English   中英

WPF C# 更改单选按钮中文本块的背景颜色

[英]WPF C# Change background color of textblock in radiobutton

由于我对 WPF 的经验有限,如果有人能帮助我解决我的问题,那就太好了。

我有一些单选按钮在运行时具有透明背景。 单击单选按钮时,我想更改背景颜色。

我已经通过了WPF 单选按钮背景颜色,但没有找到解决方案。

目前它看起来像这样;

<RadioButton x:Name="rdButtonOption1" HorizontalAlignment="Left" Margin="44,241,0,0" VerticalAlignment="Top" Height="85" Width="453" FontSize="16" VerticalContentAlignment="Center" Checked="rdButtonOption1_Checked">
    <RadioButton.Content>
        <Border BorderBrush="{x:Null}" Height="85" Width="430">
            <TextBlock Name="txtBlockBtn1" Text="" TextWrapping="Wrap"  VerticalAlignment="Center" RenderTransformOrigin="0.497,0.541"/>
        </Border>
    </RadioButton.Content>
</RadioButton> 
private void rdButtonOption1_Checked(object sender, RoutedEventArgs e)
{
    var bc = new BrushConverter();

    txtBlockBtn1.Background = (Brush)bc.ConvertFrom("#FFBDFFB3");

    rdButtonOption2.IsChecked = false;
    rdButtonOption3.IsChecked = false;
    rdButtonOption4.IsChecked = false;

    MarkCorrectAnswer();
    DisableRadioButtons();          
}

您拥有的链接应该适用于您的情况,无论您想更改Text还是Button的背景颜色,请尝试以下代码以查看您要为背景更改哪个颜色部分

<RadioButton Content="Temporary Sets" Background="Red" Foreground="White" Width="500">
            <RadioButton.Template>
                <ControlTemplate TargetType="{x:Type RadioButton}">
                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Background="Green">
                        <Grid>
                            <Ellipse Width="16" Height="16" Fill="Brown"
                             Stroke="{TemplateBinding BorderBrush}"
                             StrokeThickness="{TemplateBinding BorderThickness}"/>
                            <Ellipse x:Name="Checked" Width="10" Height="10" Fill="Black" Visibility="Collapsed"/>
                        </Grid>
                        <Label Margin="5 0 0 0" Content="{TemplateBinding Content}"
                       Foreground="{TemplateBinding Foreground}"
                       Background="{TemplateBinding Background}"/>
                    </StackPanel>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter TargetName="Checked" Property="Visibility" Value="Visible"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </RadioButton.Template>
        </RadioButton>

设置BorderTextBlock或两者的Background

private void rdButtonOption1_Checked(object sender, RoutedEventArgs e)
{
    RadioButton rb = (RadioButton)sender;

    Border border = rb.Content as Border;
    if (border != null)
        border.Background = Brushes.Red;

    txtBlockBtn1.Background = Brushes.Red;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM