我想在WPF中创建DataGrid控件,其中最后一列有4个按钮。我需要为每行分别更改每个按钮的背景颜色。
<DataGridTemplateColumn Header="Progress">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Name="spBtnDG" Orientation="Horizontal">
<Button Name="btnPhaseI" MouseEnter="btnPhaseI_MouseEnter" Width="110" Height="8" Content=""/>
<Button Name="btnPhaseII" MouseEnter="btnPhaseII_MouseEnter" Width="110" Height="8" Content="" />
<Button Name="btnPhaseIII" MouseEnter="btnPhaseIII_MouseEnter" Width="110" Height="8" Content="" />
<Button Name="btnPhaseIV" MouseEnter="btnPhaseIV_MouseEnter" Width="110" Height="8" Content="" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
当我更改第一个按钮的背景颜色时,它将更改每行中每个第一个按钮的背景颜色。我需要有能力分别更改每一行。任何帮助将不胜感激。
答案 0 :(得分:0)
在事件MouseEnter的函数中,您需要将Source
对象中的属性MouseEventArgs
强制转换为Button
并将其存储为变量。然后,您可以更改其背景。
示例:
private void btnPhaseI_MouseEnter(object sender, MouseEventArgs e)
{
var btn = (Button)e.Source;
btn.Background = Brushes.Aqua;
}