WPF 鼠标悬停在图片上出现按钮,按钮居中布置,并且按钮能够点击,可以执行Command命令
时间: 2023-11-27 09:03:23 浏览: 78
您可以使用WPF中的触发器(Trigger)来实现这个效果。以下是一种可能的实现方式:
1. 在XAML中定义一个包含图片和按钮的StackPanel:
```xml
<StackPanel>
<Image Source="your_image_source.png" Width="100" Height="100"/>
<Button x:Name="your_button" Content="Your Button" Width="80" Height="30" Visibility="Hidden"
Command="{Binding YourCommand}" CommandParameter="{Binding YourCommandParameter}"/>
</StackPanel>
```
2. 在StackPanel上定义一个触发器,当鼠标悬停在上面时,显示按钮并将其居中布置:
```xml
<StackPanel.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter TargetName="your_button" Property="Visibility" Value="Visible"/>
<Setter TargetName="your_button" Property="HorizontalAlignment" Value="Center"/>
<Setter TargetName="your_button" Property="VerticalAlignment" Value="Center"/>
</Trigger>
</StackPanel.Triggers>
```
3. 在ViewModel中定义YourCommand和YourCommandParameter,并将其绑定到按钮上:
```csharp
public class YourViewModel
{
public ICommand YourCommand { get; set; }
public object YourCommandParameter { get; set; }
public YourViewModel()
{
YourCommand = new RelayCommand(YourCommandExecute);
YourCommandParameter = "Your command parameter";
}
private void YourCommandExecute(object parameter)
{
// Your command logic here
}
}
```
请注意,这里使用了RelayCommand作为ICommand的实现类,您需要在代码中实现它,或者使用其他已有的实现。
阅读全文