2012-02-09 84 views
1

我想樣式這個Datagrid的左上角元素選擇所有行,但我不知道如何。有沒有人有我的例子或沒有人知道我需要什麼樣的風格?WPF工具包Datagrid,樣式選擇器全部

我的Datagrid來自WPF工具包順便說一句。

enter image description here

回答

2

首先,我建議你升級到.NET 4.0,以便能夠使用WPF的數據網格而不訴諸安裝WPFToolkit。

現在爲你的問題,你有一個樣式設置爲你的DataGrid和風格,模板或資源內把這種代碼:

<Style TargetType="{x:Type Button}" x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}"> 
     <EventSetter Event="PreviewMouseDown" Handler="SelectAllButtonPreviewMouseDownHandler" /> 
     <EventSetter Event="PreviewMouseUp" Handler="SelectAllButtonPreviewMouseUpHandler" /> 
     <Setter Property="ToolTip" Value="{Binding SelectAllButtonToolTip, RelativeSource={RelativeSource AncestorType=DataGrid}}" /> 
     <Setter Property="Content" Value="{Binding SelectAllButtonContent, RelativeSource={RelativeSource AncestorType=DataGrid}}" /> 
     <Setter Property="Focusable" Value="False" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Grid Background="Transparent" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
         <Polygon Name="Arrow" 
           HorizontalAlignment="Right" 
           VerticalAlignment="Bottom" 
           Margin="0,0,3,3" 
           Points="0,9 9,9 9,0" 
           Fill="Black" 
           Opacity="0.15" 
           Visibility="Collapsed"/> 
         <ContentPresenter Name="ContentSite" /> 
        </Grid> 
        <ControlTemplate.Triggers> 
         <Trigger Property="Content" Value="{x:Null}"> 
          <Setter TargetName="ContentSite" Property="Visibility" Value="Collapsed"/> 
          <Setter TargetName="Arrow" Property="Visibility" Value="Visible"/> 
         </Trigger> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter TargetName="Arrow" Property="Opacity" Value="0.75"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    </Style> 

(這是從一些代碼樣本我把它放在MyDataGrid.Resources中,MyDataGrid是從DataGrid衍生出來的類)

編輯:重要的部分當然是x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}"在按鈕的樣式聲明器中。

+0

我已經有.net 4.0框架。不過WPF Toolkit Datagrid功能更強大,不是嗎? – KroaX 2012-02-09 14:38:00

+0

居然,沒有。完全一樣。 WPFToolKit只是允許你預覽下一個.net發行版的內容,例如DataGrid,它不在.net 3.5框架中,但被添加到.net 4.0版本(使用WPFToolkit在這種情況下沒有意義) – David 2012-02-09 14:42:00