【发布时间】:2016-10-14 05:53:26
【问题描述】:
我有一组正确显示的单选按钮(如下图所示)。 现在,当我单击它们时,它们周围似乎出现了一个红色方块(如下图第二张所示)。 这让我想起了 wpf 的渲染问题,正如我之前看到的与 winforms 类似。
至于开发,我使用 wpf 和 c#,mvvmlight。
还 iv 在下面包含了我的代码:
<RadioButton GroupName="Part_GrpPlayBtn"
ToolTip="Play"
Style="{StaticResource StyleRadioButton}"
Template="{StaticResource Template_Play}"
IsChecked="{Binding PlayState, Converter={StaticResource PlayStateToCheckedConvert}, ConverterParameter={x:Static local:ePlaybackState.ePlay}}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked" >
<i:InvokeCommandAction Command="{Binding PlayCommand,
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:VMSPlayBarControl}}}" >
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</RadioButton>
<Style TargetType="RadioButton" x:Key="StyleRadioButton" >
<Setter Property="Margin" Value="5" />
<Setter Property="ToolTipService.IsEnabled" Value="{Binding IsChecked, RelativeSource={RelativeSource Self}}"/>
</Style>
<ControlTemplate x:Key="Template_Play" TargetType="{x:Type RadioButton}">
<Grid>
<Ellipse x:Name="Part_BgEllipse" Style="{StaticResource StyleEllipse}" />
<Image x:Name="PART_Image" Source="{StaticResource ImgPlayOff}" Style="{StaticResource StyleImage}"/>
<ContentPresenter/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Part_BgEllipse" Property="Fill" Value="{StaticResource PrimaryBlueColorBrush}" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="PART_Image" Property="Source" Value="{StaticResource ImgPlayHover}"/>
<Setter TargetName="Part_BgEllipse" Property="Fill" Value="{StaticResource SecondaryLightGrayColorBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
对上述问题有什么建议或想法吗?
谢谢。
【问题讨论】:
标签: c# wpf radio-button mvvm-light