2009-08-28 250 views
0

有什麼方法可以在那裏設置複選框的樣式? iv試圖爲複選框定義一種樣式,但沒有奏效。使用摩爾WPF DataGridCheckBoxColumn自定義樣式?

後好像CheckBox控件沒有一個切換按鈕在它它採用了BulleDecorator相反,我不是一定要使用這個摩爾第一次IM的..

我想要實現的是,代替我想要一個紅色或綠色圓圈的複選框。

<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> 

回答

3

看起來你正在尋找DataGridBoundColumn.ElementStyle財產(DataGridCheckBoxColumn從DataGridBoundColumn派生)。如果這不適合你,你總是可以使用DataGridTemplateColumn來顯示任何你想要的。

如果您需要更多信息,請參閱Vincent Sibal's博客。

6

這是我做的:

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