日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WPF 模仿前端大佬寫一個Hover效果

freeflydom
2024年11月18日 10:39 本文熱度 1012

先看一下效果吧:

 

原博主的地址:【動畫進階】神奇的卡片 Hover 效果與 Blur 的特性探究 - ChokCoco - 博客園 (cnblogs.com)

原效果是一個css效果,我們采用WPF的方式模仿一下

因為技術有限,沒有原博主的那么好看,畢竟盜版永遠比不過原版...

然后這里看一下盜版的怎么寫吧

先是拿到原版的圖片(原博客里面有圖片地址),當然也可以自己挑一張自己喜歡的圖片,把圖片保存到自己的WPF項目下面

 再把圖片運用到代碼里面去,給一個border的背景設置成圖片,再給border設置一個圓角,就會得到一個圓角的圖片

?
    <Grid>
        <Grid x:Name="gd1" Height="400" Width="300">
            <Border Margin="50" CornerRadius="30">
                <Border.Background>
                    <ImageBrush ImageSource="08.jpg"/>
                </Border.Background>
            </Border>
        </Grid>
    </Grid>

然后再給圖片添加一個模糊效果

模糊效果的實現(xiàn)就是在圖片的下面一層添加一個同樣的border,但是設置不同的margin,讓它比正常顯示的圖片大一圈


<Grid x:Name="gd1" Height="400" Width="300">
    <Border CornerRadius="30" Margin="18">
        <Border.Effect>
            <BlurEffect Radius="20"/>
        </Border.Effect>
        <Border.Background>
            <ImageBrush ImageSource="08.jpg"/>
        </Border.Background>
    </Border>
    <Border Margin="50" CornerRadius="30">
        <Border.Background>
            <ImageBrush ImageSource="08.jpg"/>
        </Border.Background>
    </Border>
</Grid>

紅色部分就是添加的模糊層,添加以后就會得到下面的效果

 然后最重要的就是剩下的hover效果了:

我們先準備一個背景色,原版的背景色我不知道怎么實現(xiàn),所以只能用不同的背景色做為底色了

把這個背景放到最下面就會得到下面的效果(這里遇到個問題,不知道怎么把超出border以外的虛化效果裁掉,導致border以外也有一點點的模糊效果)

(原博是通過設置外層的overflow: hidden; 來實現(xiàn)的,但是我不知道wpf怎么實現(xiàn)這個效果,查了半天也沒查到)

代碼如下,就是就是一個帶有漸變色的border


<Grid x:Name="gd1" Height="400" Width="300">
    <Border x:Name="bd2" BorderThickness="2" Visibility="Hidden" CornerRadius="30" Margin="15">
        <Border.BorderBrush>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF43D4F9"/>
                <GradientStop Color="#FFDF07FD" Offset="1"/>
            </LinearGradientBrush>
        </Border.BorderBrush>
        <Border.Clip>
            <EllipseGeometry x:Name="eg1" RadiusX="150" RadiusY="150" Center="150,200"/>
        </Border.Clip>
        <Border CornerRadius="30" Opacity="0.7">
            <Border.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF43D4F9"/>
                    <GradientStop Color="#FFDF07FD" Offset="1"/>
                </LinearGradientBrush>
            </Border.Background>
        </Border>
    </Border>
    <Border CornerRadius="30" Margin="18">
        <Border.Effect>
            <BlurEffect Radius="20"/>
        </Border.Effect>
        <Border.Background>
            <ImageBrush ImageSource="08.jpg"/>
        </Border.Background>
    </Border>
    <Border Margin="50" CornerRadius="30">
        <Border.Background>
            <ImageBrush ImageSource="08.jpg"/>
        </Border.Background>
    </Border>
</Grid>

然后就是實現(xiàn)hover效果,在實現(xiàn)hover效果以前先給bd2添加一個clip效果

UIElement.Clip 屬性 (System.Windows) | Microsoft Learn

關于clip的解釋,可以看一下微軟對于clip效果的說明

<Border.Clip>
    <EllipseGeometry x:Name="eg1" RadiusX="150" RadiusY="150" Center="150,200"/>
</Border.Clip>

把這段代碼放到明為bd2的border下面就可以了

但是還需要一些后臺代碼,控制一下這個clip的移動,我們給最外層的名為gd1的grid添加幾個事件


public MainWindow()
{
    InitializeComponent();
    gd1.MouseMove += MainGrid_MouseMove;
    gd1.MouseLeave += Bd1_MouseLeave;
    gd1.MouseEnter += Bd1_MouseEnter;
}
private void Bd1_MouseEnter(object sender, MouseEventArgs e)
{
    bd2.Visibility = Visibility.Visible;
}
private void Bd1_MouseLeave(object sender, MouseEventArgs e)
{
    bd2.Visibility = Visibility.Hidden;
}
private void MainGrid_MouseMove(object sender, MouseEventArgs e)
{
    //這里獲取一下鼠標的坐標,然后讓clip效果的中心跟著鼠標中心移動
    Point mousePosition = e.GetPosition(gd1);
    eg1.Center = new Point(mousePosition.X, mousePosition.Y);
}

然后我們讓默認情況下bd2的 Visibility="Hidden" 

效果就完成了...

轉自https://www.cnblogs.com/lvpp13/p/18376098


該文章在 2024/11/18 10:39:56 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91导航在线国产无弹窗 | 天堂亚洲国产日韩在线看 | 天堂va蜜桃一区二区三区 | 国产精品日韩欧美在线 | 免费版在线观看 | 国产老妇伦国 | a级大胆欧美人体大胆666 | 国产精品一区二区高清在线 | 日本一二区在线观看 | 91网视频网站 | 精品一区二区在线视 | 国产人澡人澡澡澡人 | 亚洲一区日本一区 | 天天综合7799精品影视 | 亚洲国产欧美中文手机在线 | 亚洲愉拍自拍另类 | 无人视频在线观看 | 亚洲欧美日韩一区在线 | 亚洲一区乱码精品中 | 亚洲日本一区二区三区在线 | 欧美黑人又粗又大又爽免费 | 亚洲午夜一区二区三区在线观看 | 国产婬乱视频免费 | 国产免费久 | 天天躁日日躁狠狠很躁 | 日韩欧美中文综合 | 日本视频二 | www.91city.cn| 加勒比一本大道香 | 日韩午夜福利免 | 在线观看亚洲h视频 | 最新欧美日韩 | 91精品专区国产盗摄 | 娇小bbw搡bbbb搡bbbb | 最近中文字幕高清字幕在线视频 | 国产亚洲人成网站在线观看 | 国产国产国产 | 丝袜足控一区二区 | 欧美日本片一区二区 | 精品一卡2卡三卡4卡免费视频 | 亚洲97i蜜桃网 |