這是我最近創建一個簡單的觸發器。我只是想要datagrid的IsMouseOver == true來顯示按鈕。 問題是Setter的TargetName說:屬性'TargetName'不代表'Setter'的有效目標,因爲找不到名爲'ButtonExpand'的元素。確保在任何使用它的Setters,Triggers或Conditions之前聲明目標。 我在做什麼錯?在一個對象上創建一個簡單的wpf觸發器,影響另一個對象
<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>
當鼠標懸停在按鈕上時,它會閃爍。 – Bluebaron 2010-11-17 21:25:45
這是最正確的。我無法給你答案道具,因爲我沒有15級或什麼東西。我在下面發佈了我的答案,但我無法點擊它作爲2天的答案。非常感謝。你絕對應該得到這個答案,但我不想讓任何人遇到同樣的問題。 – Bluebaron 2010-11-17 21:30:39
@Bluebaron:我將你的兩個修改編輯成Meleak的答案,現在你可以刪除你的答案並且標記他的答案是正確的。這兩個更改是Collapsed - > Hidden,MainDataGrid - > MainGrid,並添加周圍的代碼以顯示MainGrid的定義。 – 2010-11-17 22:39:10