WPF DataGridCheckBoxColumn自定义样式?

时间:2009-08-28 09:31:25

标签: wpf datagrid styles

有没有办法在那里设置复选框的样式? iv尝试为复选框定义样式但不起作用。

使用鼹鼠后,似乎复选框控件中没有ToggleButton,而是使用BulleDecorator,我不确定这是第一次使用鼹鼠..

我想要实现的是,而不是复选框,我想要一个红色或绿色圆圈。

<Style TargetType="{x:Type CheckBox}">
    <Setter Property="IsHitTestVisible" Value="False"/>
    <Setter Property="Focusable" Value="False"/>
    <Setter Property="HorizontalAlignment" Value="Center"/>
    <Setter Property="VerticalAlignment" Value="Top"/>
    <Setter Property="Template"> 
        <Setter.Value> 
            <ControlTemplate TargetType="{x:Type ToggleButton}"> 
                <Border x:Name="innerBorder"> 
                   <Ellipse Fill="#FFFF0000" Stroke="#FF000000" Stretch="Fill" x:Name="statusLight" Width="15" Height="15" Margin="2" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                </Border> 
                <ControlTemplate.Triggers> 
                    <Trigger Property="IsChecked" Value="True"> 
                    <Setter TargetName="statusLight" Property="Fill" Value="#FF00FF00" />
                    </Trigger> 
                     <Trigger Property="IsChecked" Value="False"> 
                    <Setter TargetName="statusLight" Property="Fill" Value="#FFFF0000" />
                    </Trigger> 
                </ControlTemplate.Triggers> 
            </ControlTemplate> 
        </Setter.Value> 
    </Setter>
</Style>

2 个答案:

答案 0 :(得分:6)

我就这样做了:

<Controls:DataGridCheckBoxColumn Header="Homme"  Binding="{Binding Homme}">
      <Controls:DataGridCheckBoxColumn.ElementStyle>
           <Style TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}"/>
     </Controls:DataGridCheckBoxColumn.ElementStyle>
</Controls:DataGridCheckBoxColumn>

答案 1 :(得分:3)

看起来您正在寻找DataGridBoundColumn.ElementStyle属性(DataGridCheckBoxColumn派生自DataGridBoundColumn)。如果这对您不起作用,您可以始终使用DataGridTemplateColumn来显示您想要的任何内容。

如果您需要更多相关信息,请参阅Vincent Sibal's博客。