wpf-鼠标点击/进入按钮时展示列表,移出时隐藏列表

要实现的效果大概是:
不点击不经过时
在这里插入图片描述
否则
在这里插入图片描述
我的思路是先做一个button,然后在button上加一个MouseEnter和Click事件。下面摆一个ListView,加一个MouseLeave事件。这些事件控制的是ListView的Visibility。数据绑定部分省略。

无边框带下划线的按钮

<Button SnapsToDevicePixels="True" Background="Transparent" Height="30" Width="150" BorderBrush="Transparent"
        MouseEnter="showHiddenFeaturesBtn_MouseEnter" 
        Click="showHiddenFeaturesBtn_Click"
        Margin="320,0,0,550" x:Name="showHiddenFeaturesBtn" Visibility="Hidden">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Grid>
                <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center">
                    <ContentPresenter.Content>
                        <TextBlock Text="没有显示的特征" FontSize="15">
                            <TextBlock.TextDecorations>
                                <TextDecorationCollection>
                                    <TextDecoration PenOffset="4"/>
                                </TextDecorationCollection>
                            </TextBlock.TextDecorations>
                        </TextBlock>
                    </ContentPresenter.Content>
                </ContentPresenter>
            </Grid>
        </ControlTemplate>
    </Button.Template>  
</Button>

ListView

<ListView x:Name="hiddenFeatureNames" Margin="320,0,0,400" Visibility="Hidden" Width="200" Height="100"
		  Background="Transparent" MouseLeave="hiddenFeatureNames_MouseLeave">
</ListView>

c#

private void showHiddenFeaturesBtn_MouseEnter(object sender, MouseEventArgs e)
{
	hiddenFeatureNames.Visibility = Visibility.Visible;
}
private void showHiddenFeaturesBtn_Click(object sender, RoutedEventArgs e)
{
	hiddenFeatureNames.Visibility = Visibility.Visible;
}
private void hiddenFeatureNames_MouseLeave(object sender, MouseEventArgs e)
{
	hiddenFeatureNames.Visibility = Visibility.Hidden;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值