[英]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>
设置Border
或TextBlock
或两者的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.