我有一個datagrid,我已經覆蓋了某些自定義主題的行樣式和控件模板。爲了舉例,我在每一行的上面放了一個矩形(高度:1,填充:紅色)。像左邊的形象在這裏 -不同於它的兄弟姐妹的單個元素
這裏是做這個的控制模板,我只是增加了一個紅色矩形的默認模板。
<ControlTemplate TargetType="{x:Type DataGridRow}">
<Border x:Name="DGR_Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<SelectiveScrollingGrid>
<SelectiveScrollingGrid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</SelectiveScrollingGrid.ColumnDefinitions>
<SelectiveScrollingGrid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</SelectiveScrollingGrid.RowDefinitions>
**<Rectangle Grid.Row="0" Fill="Red" Height="1" VerticalAlignment="Top" Grid.ColumnSpan="2"/>**
<DataGridCellsPresenter Grid.Row="1" Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Grid.Column="1" Grid.Row="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/>
<DataGridRowHeader Grid.RowSpan="3" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
</SelectiveScrollingGrid>
</Border>
</ControlTemplate>
但是說我想讓它看起來像右邊的圖像......第一行沒有紅色的矩形。我會怎麼做呢?
我已經遇到了這個問題幾次,因爲雖然我一直在WPF主題 - 我有與TabItem頭,另一個問題,因爲我需要第一個選項卡看起來不同於其餘。使用CSS或jQuery時,在網站上工作時有專門用於此目的的選擇器。即時通訊編寫一個WPF桌面應用程序,我不知道如何從XAML/C#的角度來看它。有人知道嗎?
該解決方法不適用於我需要做的事情。我不想讓這個例子過於尷尬,所以我簡化了一下。但是我必須能夠以不同方式對一組元素中的第一個元素進行樣式化。 – 2012-01-06 13:32:09