最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用WPF實現(xiàn)加載動畫效果

 更新時間:2024年03月29日 09:57:22   作者:趨時軟件  
在應用程序加載大量數(shù)據(jù)或執(zhí)行復雜操作時,為用戶提供一個良好的加載體驗變得至關重要,加載動畫是其中一個有效的方式,下面我們就來看看如何使用WPF實現(xiàn)簡單的加載動畫效果吧

前言

當我們在開發(fā)應用程序時,用戶體驗往往是至關重要的一環(huán)。在應用程序加載大量數(shù)據(jù)或執(zhí)行復雜操作時,為用戶提供一個良好的加載體驗變得至關重要。加載動畫是其中一個有效的方式,它不僅能夠告知用戶應用程序正在進行工作,還能夠緩解用戶在等待過程中的焦慮感。

一、需求分析

開發(fā)一個加載動畫比較常見的做法一般有以下兩種。

一種是直接在控件的上層添加一層半透明遮罩,在遮罩上面顯示加載動畫,需要顯示加載效果的時候將這個遮罩顯示出來,加載完成以后隱藏這個遮罩,這種方式雖然也能實現(xiàn)需求,但是缺點也很明顯,每次要使用加載效果的時候都需要單獨添加遮罩代碼,單獨寫控制顯示和隱藏的代碼,一個項目頁面那么多,每次都這樣整,那不得把人整崩潰了。

還有一種實現(xiàn)方式是開發(fā)一個控件,在這個控件當中實現(xiàn)遮罩的效果,然后用這個控件把頁面內容包起來,這樣直接控制這個控件的屬性就能實現(xiàn)遮罩效果,這也是很多第三方控件庫的實現(xiàn)方式。這種方式在易用性上雖然有所提升,但是還是有上面的問題,每個要用的地方都得Copy一次代碼。

今天我們這里使用第三種方式,那就是使用裝飾器來實現(xiàn)這個功能,它的優(yōu)點就是對源代碼侵入很小,不用每次使用都Copy大段代碼,并且可擴展性非常強。

二、基本用法

以下為示例代碼,當ViewModel中的IsLoading屬性值為True時,就會觸發(fā)Loading動畫。

View代碼:

<Window
    x:Class="LoadingDemo.Views.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:extensions="clr-namespace:LoadingDemo.Extensions"
    xmlns:prism="http://prismlibrary.com/"
    Title="Loading測試"
    Width="1366"
    Height="768"
    prism:ViewModelLocator.AutoWireViewModel="True"
    FontSize="22"
    WindowStartupLocation="CenterScreen">
    <Grid extensions:FrameworkElementExtension.IsLoading="{Binding IsLoading}">
        
    </Grid>
</Window>

ViewModel代碼:

namespace LoadingDemo.ViewModels
{
    public class MainWindowViewModel : BindableBase
    {
        private bool _isLoading = false;
        public bool IsLoading
        {
            get { return _isLoading; }
            set { this.SetProperty(ref _isLoading, value); }
        }
    }
}

運行效果:

三、高級用法

3.1 FrameworkElementExtension.IsLoading只能在Grid上使用嗎?

答:No,幾乎所有控件都可以使用,Window、Page、UserControl、Panel、Button、Rectangle、Path、TextBox等等,都沒問題,只需要將IsLoading設置為True,就會出現(xiàn)Loading效果。

3.2 我覺得加載動畫不好看,有沒有辦法換成其它的?

答:當然可以,除了默認加載效果以外,還可以添加任意你喜歡的效果,不管它是文字、動畫、視頻、gif圖片還是其它的東西,通通都可以,并且操作非常簡單,一共有兩種方式。

方式一:統(tǒng)一添加的方式

只需在Resources中添加一個名為MaskContent的資源,在觸發(fā)加載遮罩顯示的時候就會自動讀取該資源作為動畫元素,如果放在App.Resources中,整個項目所有加載效果都使用該資源,如果放在Window.Resources中,Window中的所有加載效果都使用該資源,以此類推。以下都是合法的代碼。

添加自定義動畫效果(用戶控件)

<Window.Resources>
    <controls:CustomLoading x:Key="MaskContent" Width="35" Height="35" />
</Window.Resources>

添加文字

<Window.Resources>
    <TextBlock x:Key="MaskContent" Text="加載中..." HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="22" FontWeight="Bold" Foreground="White" />
</Window.Resources>

添加進度條控件

<Window.Resources>
    <ProgressBar x:Key="MaskContent" Width="150" Height="15" HorizontalAlignment="Center" VerticalAlignment="Center" IsIndeterminate="True" />
</Window.Resources>

方式二:單獨添加的方式

<Grid extensions:FrameworkElementExtension.IsLoading="{Binding IsLoading}">
    <extensions:FrameworkElementExtension.MaskContent>
        <TextBlock Text="加載中..." HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="22" FontWeight="Bold" Foreground="White"/>
    </extensions:FrameworkElementExtension.MaskContent>
</Grid>

四、綜合案例

到此這篇關于使用WPF實現(xiàn)加載動畫效果的文章就介紹到這了,更多相關WPF加載動畫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • c#漢諾塔的遞歸算法與解析

    c#漢諾塔的遞歸算法與解析

    c#漢諾塔的遞歸算法與解析,需要的朋友可以參考一下
    2013-03-03
  • C#格式化數(shù)字字符串的方法

    C#格式化數(shù)字字符串的方法

    這篇文章主要為大家詳細介紹了C#格式化數(shù)字字符串的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉換

    詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉換

    本文詳細講解了c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉換,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C#簡單了解接口(Interface)使用方法

    C#簡單了解接口(Interface)使用方法

    這篇文章主要介紹了C#簡單了解接口(Interface)使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • C# 監(jiān)控 Windows 文件夾的方法

    C# 監(jiān)控 Windows 文件夾的方法

    這篇文章主要介紹了C# 監(jiān)控 Windows 文件夾的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C#自動刪除Word文檔空白行和空白頁的完整代碼

    C#自動刪除Word文檔空白行和空白頁的完整代碼

    在處理 Word 文檔時,經常會遇到空白行、空表格或空白頁的問題,這不僅影響排版美觀,還可能導致文檔頁數(shù)冗余,所以本文將介紹如何使用 Spire.Doc for .NET 在 C# 中自動刪除 Word 文檔的空白行、空表格和空白頁,需要的朋友可以參考下
    2025-08-08
  • C#使用NOPI庫實現(xiàn)導入Excel文檔

    C#使用NOPI庫實現(xiàn)導入Excel文檔

    NPOI中N指代的是.Net,POI是一個完全開源的Java寫成的庫,能夠在沒有安裝微軟Office或者相應環(huán)境的情況下讀寫Excel、Word等微軟OLE2組件文檔,幾乎支持所有的Office97~Office2007的文件格式。所以NPOI就是POI項目的.Net版本。
    2017-05-05
  • C#如何取硬件標志

    C#如何取硬件標志

    C#如何取硬件標志...
    2007-03-03
  • 詳解C#編程獲取資源文件中圖片的方法

    詳解C#編程獲取資源文件中圖片的方法

    這篇文章主要介紹了詳解C#編程獲取資源文件中圖片的方法的相關資料,需要的朋友可以參考下
    2017-06-06
  • unity實現(xiàn)屏幕上寫字效果

    unity實現(xiàn)屏幕上寫字效果

    這篇文章主要為大家詳細介紹了unity實現(xiàn)屏幕上寫字效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論

郸城县| 西藏| 武义县| 岳池县| 奉化市| 清镇市| 河北区| 辽宁省| 东山县| 湘乡市| 黔西县| 湄潭县| 阆中市| 牡丹江市| 宜宾县| 麻阳| 和顺县| 读书| 全椒县| 乌审旗| 阿拉善左旗| 平原县| 南充市| 安远县| 安国市| 洛扎县| 绍兴市| 仙居县| 丽江市| 辽宁省| 长海县| 化州市| 江川县| 贡山| 玉溪市| 永川市| 铜陵市| 金昌市| 沙坪坝区| 东城区| 龙游县|