在DataGrid WPF中禁用行选择

时间:2018-07-29 19:36:59

标签: c# wpf xaml controltemplate

我想在WPF DataGrid中禁用DataRow选择。

首先,我尝试了IsHitTestVisible属性,它禁用了整行。如果我想放置HyperLink,它将被禁用。

我试图通过覆盖DataGridRow ControlTemplate来摆脱它:

(整个模板代码很大,但我只列出了重要的部分)

 <VisualState x:Name="Normal_Selected">
     <Storyboard>
         <ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
             <EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlMediumColor}" />
         </ColorAnimationUsingKeyFrames>
         <ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
             <EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlDarkColor}" />
         </ColorAnimationUsingKeyFrames>
         <!--<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)">
             <EasingColorKeyFrame KeyTime="0" Value="Black" />
         </ColorAnimationUsingKeyFrames>-->
     </Storyboard>
 </VisualState>

实际上,在DataGrid中选择一行将更改Forground的颜色。我已经尝试过Triggers,但无法正常工作。在上面的代码中,我试图保持前台Black的位置,但它会引发运行时错误。

如何禁用DataGrid中的行选择?

0 个答案:

没有答案