uydurulmuş DataGridRow Arka plan Color Bir AlternatingRowBackground fırçası olan bir WPF veri vardır. Diğer her satırı renklendirmek için yapılandırıldı. Şu andaki satırı vurgulayan fare üzerinde bir şey yapmak isterim. Ancak, Stil Tetikleyici AlternatingRowBackground fırçasına kaybediyor gibi görünüyor. Fare üzerinde istenen satır renklendirmesini alıyorum ... ama sadece AlternatingRowBackground fırçasıyla boyanmamış satırlarda. İşte WPF Stil Tetik AlternatingRowBackground Fırça
Windows.Resources içinde Style:<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background"
Value="Red" />
<Setter Property="FontWeight"
Value="ExtraBold" />
<Setter Property="Height"
Value="20" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</Window.Resources>
Ve burada DataGrid:
<DataGrid Margin="25,15,25,0"
VerticalAlignment="Top"
ItemsSource="{Binding DocumentTypeList}"
AutoGenerateColumns="False"
Height="500"
AlternationCount="2"
FrozenColumnCount="2"
AlternatingRowBackground="{DynamicResource AlternatingRow}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Abbreviation}"
Header="Abbreviation" />
<DataGridTextColumn Binding="{Binding Title}"
Header="Title" />
<DataGridTextColumn Binding="{Binding Fee}"
Header="Fee" />
<DataGridTextColumn Binding="{Binding SpecialInstructions}"
Header="Special Instructions" />
</DataGrid.Columns>
</DataGrid>
mutlak galip ilan için bir yol var mı? Sorun bir hiyerarşi mi? Bana öyle geliyor ki, AlternatingRowBackground fırçası, beyanın en spesifik kısmı ile doğrudan ilişkili olduğu için kazanıyor. Güncelleme
:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background"
Value="Red" />
<Setter Property="FontWeight"
Value="ExtraBold" />
<Setter Property="Height"
Value="20" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="AlternatingRowBackground" Value="{DynamicResource AlternatingRow}"/>
</Style>
</ResourceDictionary>
</Window.Resources>
Ve DataGrid (eksi AlternatingRowBackground fırça): Burada @ dayanarak Val'ın rehberlik doğru sözdizimi
benim için çalıştı neler<DataGrid Margin="25,15,25,0"
VerticalAlignment="Top"
ItemsSource="{Binding DocumentTypeList}"
AutoGenerateColumns="False"
Height="500"
AlternationCount="2"
FrozenColumnCount="2">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Abbreviation}"
Header="Abbreviation" />
<DataGridTextColumn Binding="{Binding Title}"
Header="Title" />
<DataGridTextColumn Binding="{Binding Fee}"
Header="Fee" />
<DataGridTextColumn Binding="{Binding SpecialInstructions}"
Header="Special Instructions" />
</DataGrid.Columns>
</DataGrid>
kesinlikle bana doğru yönde gidiyor. Setter özelliğini size önerdiğiniz gibi ekledim ... {x: Type DataGridRow} 'a değil, {x: Type DataGrid} için ayrı bir stil olarak. Bu hile yapar. –
Teşekkür ederiz! DataGrid.AlternatingRowBackground yerine bir DataGrid Stilinde AlternatingRowBackground öğesini neden tanımladığınızı, doğrudan tetikleyicinin çalışmasına izin verdiğinden emin değilim, ancak bunu yaptığına sevindim! –