这是我为创建一个简单的触发器所做的最接近的尝试。我只想要当 datagrid 的 IsMouseOver == true 时显示按钮。
问题在于 Setter 的 TargetName 说:“属性'TargetName'不代表 'Setter' 的有效目标,因为未找到名为 'ButtonExpand' 的元素。请确保在使用它的任何 Setters、Triggers 或 Conditions 之前声明目标。” 我做错了什么?
问题在于 Setter 的 TargetName 说:“属性'TargetName'不代表 'Setter' 的有效目标,因为未找到名为 'ButtonExpand' 的元素。请确保在使用它的任何 Setters、Triggers 或 Conditions 之前声明目标。” 我做错了什么?
<UserControl.Resources>
<Style TargetType="DataGrid">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonExpand" Property="Visibility" Value="Visible" />
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<DataGrid Name="MainDataGrid" ItemsSource="{Binding Programs}" IsReadOnly="True" AutoGenerateColumns="false" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Version" Binding="{Binding Version}"/>
<DataGridTextColumn Header="Publisher" Binding="{Binding Publisher}"/>
</DataGrid.Columns>
</DataGrid>
<Button Name="ButtonExpand" Height="25" Width="25" HorizontalAlignment="Right" VerticalAlignment="Bottom" Visibility="Hidden">+</Button>
</Grid>