2013-07-05 49 views
0

以下是我的DataGrid xaml,它绑定到数据源。如何将图像设置为DataGrid标题背景?

<DataGrid AutoGenerateColumns="False" Height="240" Name="dtDemo" 
    ItemsSource="{Binding Path=LfdConnections}"> 
    <DataGrid.ColumnHeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="FontWeight" Value="Bold" /> 
     </Style> 
    </DataGrid.ColumnHeaderStyle> 
    <DataGrid.Resources> 
     <ResourceDictionary> 
      <Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"> 
       <Setter Property="Background" Value="Transparent" /> 
       <Setter Property="BorderBrush" Value="Transparent" /> 
       <Style.Triggers> 
        <Trigger Property="IsSelected" Value="True"> 
         <Setter Property="Background" Value="Transparent" /> 
         <Setter Property="BorderBrush" Value="Transparent" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
      <Style TargetType="{x:Type DataGridRow}"> 
       <Setter Property="Background" Value="Transparent" /> 
       <Setter Property="BorderBrush" Value="Transparent" /> 
       <Style.Triggers> 
        <Trigger Property="IsSelected" Value="True"> 
         <Setter Property="Background" Value="Transparent" /> 
         <Setter Property="BorderBrush" Value="Transparent" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ResourceDictionary> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Monitor" Width="55" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Label Content="{Binding Path=MonitorName}" Height="28" Name="lblMonitorName" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <DataGridTemplateColumn Header="Connection" Width="70" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <ComboBox ItemsSource="{Binding Path=ConnTypes,Mode=OneTime, UpdateSourceTrigger=PropertyChanged}" SelectedIndex="0"> 
        </ComboBox> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <DataGridTemplateColumn Header="Port/IP" Width="70" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <ComboBox ItemsSource="{Binding Path=PortTypes,Mode=OneTime, UpdateSourceTrigger=PropertyChanged}" 
               SelectedIndex="0"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <DataGridTemplateColumn Header="ID" Width="50" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <ComboBox ItemsSource="{Binding Path=LfdIds,Mode=OneTime, UpdateSourceTrigger=PropertyChanged}" 
               SelectedIndex="0"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <DataGridTemplateColumn Header="Source" Width="130" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <ComboBox ItemsSource="{Binding Path=SourceTypes,Mode=OneTime, UpdateSourceTrigger=PropertyChanged}" 
               SelectedIndex="0"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <DataGridTemplateColumn Header="Connect" Width="*" IsReadOnly="True"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Button Content="Connect" Height="23" Name="btnConnect" Width="75" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 

我想一个image添加为这个DataGrid列标题。你能告诉我该怎么做吗?

+0

你要设置的图像作为背景或添加作为一个头的一部分? – dkozl

+0

您应该根据需要设计DataGridColumnHeader模板的样式。您可以搜索msdn网站上的模板样式,也可以尝试使用Expression Blend来获取它。 – Santux

+0

@dkozl我想要图像作为背景。 – Narendra

回答

0

请尝试以下片断

<DataGridTemplateColumn> 
    <DataGridTemplateColumn.Header> 
     <Grid> 
     <Image Source="C:\Users\Vimal\Desktop\1.jpg" /> 
     <TextBlock Text="Monitor" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     </Grid> 
    </DataGridTemplateColumn.Header> 
</DataGridTemplateColumn> 
相关问题