durw4.cn-国产精品不卡在线,日韩在线观看一区二区,波波电影院一区二区三区,久久久久国产一区二区三区四区

新文化網(wǎng) > 汽車(chē) >C# WPF計(jì)算器界面(Calculator Design With Animations)

C# WPF計(jì)算器界面(Calculator Design With Animations)

2020-03-30 15:18:00 來(lái)源:互聯(lián)網(wǎng) 閱讀:-

時(shí)間如流水,只能流去不流回!

點(diǎn)贊再看,養(yǎng)成習(xí)慣,這是您給我創(chuàng)作的動(dòng)力!

本文 Dotnet9 https://dotnet9.com 已收錄,站長(zhǎng)樂(lè)于分享dotnet相關(guān)技術(shù),比如Winform、WPF、ASP.NET Core、Xamarin.Forms等,亦有C++桌面相關(guān)的Qt Quick和Qt Widgets等,只分享自己熟悉的、自己會(huì)的。

閱讀導(dǎo)航:

  • 一、先看效果
  • 二、本文背景
  • 三、代碼實(shí)現(xiàn)
  • 四、文章參考
  • 五、代碼下載

一、先看效果

二、本文背景

YouTube Design com WPF 大神處習(xí)得,簡(jiǎn)單的計(jì)算器布局界面 + 簡(jiǎn)單動(dòng)畫(huà),使用的開(kāi)源 C# WPF控件庫(kù) MaterialDesignInXAML ,本站曾有介紹:開(kāi)源C# WPF控件庫(kù)《MaterialDesignInXAML》。

三、代碼實(shí)現(xiàn)

3.1 添加Nuget庫(kù)

站長(zhǎng)使用.Net Core 3.1創(chuàng)建的WPF工程,創(chuàng)建“Calculator”解決方案后,需要添加兩個(gè)Nuget庫(kù):MaterialDesignThemes和MaterialDesignColors,上圖的效果是使用該控件庫(kù)實(shí)現(xiàn)的,非常強(qiáng)大。

3.2 工程結(jié)構(gòu)

不需要截圖,只修改了兩個(gè)文件,App.xaml添加MD控件樣式,MainWindow主窗口實(shí)現(xiàn)效果。

3.3 App.xaml引入MD控件樣式

<Application x:Class="Calculator.App"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:local="clr-namespace:Calculator"             StartupUri="MainWindow.xaml">    <Application.Resources>        <ResourceDictionary>            <ResourceDictionary.MergedDictionaries>                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />            </ResourceDictionary.MergedDictionaries>            <!--PRIMARY-->            <SolidColorBrush x:Key="PrimaryHueLightBrush" Color="#349fda"/>            <SolidColorBrush x:Key="PrimaryHueLightForegroundBrush" Color="#FF777777"/>            <SolidColorBrush x:Key="PrimaryHueMidBrush" Color="#FF222222"/>            <SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="#DDDDDD"/>            <SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="#FF000000"/>            <SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="#FFFFFF"/>            <!--ACCENT-->            <SolidColorBrush x:Key="SecondaryAccentBrush" Color="#FFD14C25"/>            <SolidColorBrush x:Key="SecondaryAccentForegroundBrush" Color="#FFFFFF"/>        </ResourceDictionary>    </Application.Resources></Application>

3.4 主窗體

MainWindow.xaml,整體布局,看上圖加上下面的界面代碼,本文基本就是布局 + 簡(jiǎn)單動(dòng)畫(huà),全在這個(gè)界面,直接看代碼吧,不細(xì)說(shuō)了:

<Window x:Class="Calculator.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"        xmlns:local="clr-namespace:Calculator"        mc:Ignorable="d"        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"        Height="550" Width="300" AllowsTransparency="True"        WindowStyle="None" ResizeMode="NoResize" MouseDown="Window_MouseDown"        WindowStartupLocation="CenterScreen">    <Window.Resources>        <Storyboard x:Key="PowerOff">            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="grid">                <DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="{x:Static Visibility.Visible}"/>                <DiscreteObjectKeyFrame KeyTime="0:0:1.5" Value="{x:Static Visibility.Visible}"/>            </ObjectAnimationUsingKeyFrames>            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid">                <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0"/>                <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="1"/>            </DoubleAnimationUsingKeyFrames>        </Storyboard>        <Storyboard x:Key="PowerOn">            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="grid">                <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>                <DiscreteObjectKeyFrame KeyTime="0:0:1.3" Value="{x:Static Visibility.Visible}"/>                <DiscreteObjectKeyFrame KeyTime="0:0:1.5" Value="{x:Static Visibility.Collapsed}"/>            </ObjectAnimationUsingKeyFrames>            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid">                <EasingDoubleKeyFrame KeyTime="0" Value="1"/>                <EasingDoubleKeyFrame KeyTime="0:0:1.3" Value="0"/>                <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="0"/>            </DoubleAnimationUsingKeyFrames>        </Storyboard>    </Window.Resources>    <Window.Triggers>        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ButtonPowerOff">            <BeginStoryboard Storyboard="{StaticResource PowerOff}"/>        </EventTrigger>        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="ButtonPowerOn">            <BeginStoryboard Storyboard="{StaticResource PowerOn}"/>        </EventTrigger>    </Window.Triggers>    <Border Background="#E5000000" CornerRadius="10">        <Grid>            <StackPanel>                <Grid Height="210">                    <StackPanel>                        <Button HorizontalAlignment="Left" Margin="10" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource PrimaryHueMidForegroundBrush}">                            <materialDesign:PackIcon Kind="Menu" Foreground="{StaticResource PrimaryHueLightForegroundBrush}"/>                        </Button>                        <TextBlock FontSize="15" FontFamily="Oswald" Text="30 + 20 = 50" TextAlignment="Right"                                   Foreground="{StaticResource PrimaryHueLightForegroundBrush}" Margin="20 0 20 10"/>                    </StackPanel>                    <StackPanel VerticalAlignment="Bottom">                        <TextBlock FontSize="20" FontFamily="Oswald" Text="30 + 47 + 32 -" TextAlignment="Right"                                   Foreground="{StaticResource PrimaryHueLightForegroundBrush}" Margin="20 0"/>                        <TextBlock FontSize="50" FontFamily="Oswald" Text="13" TextAlignment="Right"                                   Foreground="#FF5885A4" Margin="20 0">                            <TextBlock.Effect>                                <DropShadowEffect BlurRadius="10" ShadowDepth="1" Color="#FF5885A4"/>                            </TextBlock.Effect>                        </TextBlock>                    </StackPanel>                </Grid>                <Rectangle Height="1" Fill="Gray" Margin="10 0"/>                <Grid>                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="1*"/>                        <ColumnDefinition Width="1*"/>                        <ColumnDefinition Width="1*"/>                        <ColumnDefinition Width="1*"/>                    </Grid.ColumnDefinitions>                    <Grid.RowDefinitions>                        <RowDefinition Height="1*"/>                        <RowDefinition Height="1*"/>                        <RowDefinition Height="1*"/>                        <RowDefinition Height="1*"/>                        <RowDefinition Height="1*"/>                    </Grid.RowDefinitions>                    <Button Grid.Column="0" Grid.Row="0" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="LetterC" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="1" Grid.Row="0" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="PlusMinus" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="2" Grid.Row="0" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Percent" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="3" Grid.Row="0" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Division" Width="30" Height="30"/>                    </Button>                                        <Button Grid.Column="0" Grid.Row="1" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number7" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="1" Grid.Row="1" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number8" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="2" Grid.Row="1" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number9" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="3" Grid.Row="1" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Multiplication" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="0" Grid.Row="2" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number4" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="1" Grid.Row="2" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number5" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="2" Grid.Row="2" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number6" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="3" Grid.Row="2" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Minus" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="0" Grid.Row="3" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number1" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="1" Grid.Row="3" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number2" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="2" Grid.Row="3" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number3" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="3" Grid.Row="3" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Plus" Width="30" Height="30"/>                    </Button>                    <Button x:Name="ButtonPowerOff" Grid.Column="0" Grid.Row="4" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Power" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="1" Grid.Row="4" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Number0" Width="30" Height="30"/>                    </Button>                    <Button Grid.Column="2" Grid.Row="4" Margin="5" Content="."                            Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                    </Button>                    <Button Grid.Column="3" Grid.Row="4" Margin="5"                            Style="{StaticResource MaterialDesignFloatingActionAccentButton}"                            BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                        <materialDesign:PackIcon Kind="Equal" Width="30" Height="30"/>                    </Button>                </Grid>            </StackPanel>            <Border x:Name="grid" CornerRadius="10" Background="Black" Visibility="Collapsed" Opacity="0">                <Button x:Name="ButtonPowerOn" Grid.Column="0" Grid.Row="1" Margin="5" Width="150" Height="150"                        Style="{StaticResource MaterialDesignFloatingActionDarkButton}"                        BorderThickness="1" BorderBrush="{StaticResource PrimaryHueMidBrush}">                    <materialDesign:PackIcon Kind="Power" Width="80" Height="80"/>                </Button>            </Border>        </Grid>    </Border></Window>

后臺(tái)簡(jiǎn)單的事件

private void Window_MouseDown(object sender, MouseButtonEventArgs e){    DragMove();}

四、文章參考

可直接打開(kāi)大神視頻學(xué)習(xí),他的YouTube上還有很多代碼視頻哦,參考:
參考視頻: Design com WPF: https://www.youtube.com/watch?v=G76O79eLcKM

五、代碼下載

文章中代碼已經(jīng)全部貼出,添加Nuget包,復(fù)制文中代碼就可以運(yùn)行了。

除非注明,文章均由 Dotnet9 整理發(fā)布,歡迎轉(zhuǎn)載。

轉(zhuǎn)載請(qǐng)注明本文地址:https://dotnet9.com/6777.html


推薦閱讀:adobe公司軟件

(正文已結(jié)束)

熱點(diǎn)圖片 更多>>
比《慶余年》更好看的穿越劇,19年前就拍好了!無(wú)法超越的經(jīng)典 比《慶余年》更好看的穿
枕上書(shū):司命、連宋劇中采用原班人馬,是刻意為之還是難言之隱? 枕上書(shū):司命、連宋劇中
《錦衣之下》要拍續(xù)集?劇二代撲街的教訓(xùn)還不夠多嗎? 《錦衣之下》要拍續(xù)集?
一部非典型正劇《慶余年》,竟然讓我讀懂了人生 一部非典型正劇《慶余年
新聞?lì)^條
精彩專題 更多>>
曝《東宮》制作方籌拍新?。【W(wǎng)友:就沖男主頭發(fā),實(shí)名舉薦任嘉倫 1曝《東宮》制作方籌拍新劇
點(diǎn)擊排行 更多>>
亚洲欧美自拍偷拍| 国产黄人亚洲片| 精品免费一区二区三区| 欧美视频在线观看一区二区| 91免费版在线看| 成人h动漫精品| 国产91精品久久久久久久网曝门| 久久精品国产精品亚洲红杏| 免费人成精品欧美精品| 美女脱光内衣内裤视频久久影院| 天堂资源在线中文精品| 亚洲sss视频在线视频| 亚洲va欧美va天堂v国产综合| 亚洲3atv精品一区二区三区| 污片在线观看一区二区| 丝袜亚洲另类欧美| 久久精品国产一区二区| 国产精品一区免费在线观看| 国产精品一区二区免费不卡| 国产成人啪免费观看软件 | 国产一区二区h| 高清不卡一区二区在线| 91亚洲国产成人精品一区二三| 91女神在线视频| 欧美日韩一区二区三区免费看| 欧美一级欧美三级| 国产蜜臀97一区二区三区| 综合久久久久综合| 日日夜夜免费精品| 国产mv日韩mv欧美| 欧美在线视频日韩| 精品福利一区二区三区免费视频| 中文字幕免费观看一区| 亚洲综合激情网| 狠狠色狠狠色综合系列| 97精品国产97久久久久久久久久久久| 在线观看中文字幕不卡| 久久这里只有精品6| 亚洲九九爱视频| 久久99久久久久久久久久久| 国产91精品在线观看| 欧美色大人视频| 精品久久一区二区三区| 亚洲综合激情另类小说区| 久久99久久99小草精品免视看| 91在线云播放| 久久久美女毛片| 首页国产丝袜综合| 一本久久综合亚洲鲁鲁五月天| 精品理论电影在线观看| 亚洲午夜免费福利视频| 成人av电影在线网| 欧美videos大乳护士334| 亚洲成av人影院| 91视频你懂的| 国产精品无人区| 国产一区二区91| 欧美一卡二卡三卡| 亚洲成a人片综合在线| 91香蕉国产在线观看软件| 久久精品亚洲精品国产欧美| 麻豆国产一区二区| 欧美日韩一区二区在线观看视频| 国产精品久线观看视频| 精品一区二区成人精品| 777久久久精品| 亚洲一级不卡视频| 色噜噜久久综合| 亚洲欧美一区二区在线观看| 国产成人综合在线| 国产婷婷色一区二区三区在线| 免费精品视频在线| 欧美一区二区免费观在线| 亚洲制服丝袜在线| 91精彩视频在线| 亚洲人快播电影网| 91欧美激情一区二区三区成人| 国产精品另类一区| 成人18精品视频| 亚洲国产经典视频| 丁香激情综合国产| 国产精品妹子av| 99re亚洲国产精品| 亚洲欧美综合色| 欧美一级国产精品| 亚洲成a天堂v人片| 亚洲欧美韩国综合色| 亚洲色图视频网| 久久人人超碰精品| 欧美日韩精品一区二区在线播放| 欧美经典三级视频一区二区三区| 五月婷婷久久综合| 欧美天天综合网| 亚洲国产成人一区二区三区| 国产一区二区三区美女| 欧美日韩国产综合视频在线观看| 精品国产免费一区二区三区四区| 亚洲伊人色欲综合网| 国内不卡的二区三区中文字幕 | 欧美精品一区二区三区在线播放 | gogo大胆日本视频一区| 国产亚洲欧美中文| 不卡av在线网| 中文字幕一区免费在线观看| 日本久久精品电影| 亚洲精品欧美综合四区| 欧美三级中文字幕| 亚洲成人在线观看视频| 日韩欧美在线网站| 久久精品国产精品亚洲综合| 国产欧美日韩精品在线| 风间由美一区二区三区在线观看| 中文字幕一区三区| 在线免费观看日韩欧美| 蜜桃视频一区二区| 精品三级在线观看| 99久久综合精品| 亚洲老司机在线| 精品人在线二区三区| 国产真实乱偷精品视频免| 1000部国产精品成人观看| 日本韩国欧美三级| 国内成人精品2018免费看| 久久综合久久综合九色| 91亚洲国产成人精品一区二三 | 日韩丝袜情趣美女图片| 成人做爰69片免费看网站| 久久免费电影网| 色综合久久99| 亚洲妇女屁股眼交7| 欧美一级生活片| 国产91在线观看丝袜| 中文子幕无线码一区tr| 91在线免费看| 亚洲精品高清在线| 国产婷婷色一区二区三区四区| 欧美性猛交xxxx乱大交退制版| 日韩成人一级大片| 日韩一区在线看| 91精品国产福利| 色综合久久六月婷婷中文字幕| 亚洲成人激情av| 国产精品丝袜在线| 欧美日韩五月天| 99精品一区二区三区| 三级精品在线观看| 一区二区三区**美女毛片| 日韩午夜激情免费电影| 在线观看日韩高清av| 精品一区二区三区在线播放 | 国产婷婷色一区二区三区| 欧美日韩在线观看一区二区| 激情综合五月婷婷| 日韩成人精品在线观看| 国产精品久久久久一区| 久久亚洲捆绑美女| 欧美视频一区二区在线观看| 99re在线精品| 极品少妇一区二区| 日本不卡免费在线视频| 国产精品美女久久久久aⅴ| 久久毛片高清国产| 欧美三区免费完整视频在线观看| 一本久久a久久精品亚洲| 国内精品嫩模私拍在线| 精品系列免费在线观看| 国产精品久线在线观看| 国产精品久久福利| 国产丝袜欧美中文另类| 欧美一级在线免费| 欧美一区二区久久久| 欧美伊人久久久久久午夜久久久久| 欧美日韩精品一区二区三区| 久久嫩草精品久久久精品| 久久国产综合精品| 亚洲成a人片综合在线| 亚洲美腿欧美偷拍| 国产午夜精品一区二区三区嫩草 | 色八戒一区二区三区| 懂色av噜噜一区二区三区av| 国产精品亚洲第一| 久久精品国产一区二区三区免费看 | 视频一区在线播放| 一区二区三区丝袜| 天天射综合影视| 日韩一本二本av| 色婷婷亚洲精品| 欧美日韩电影在线播放| 色猫猫国产区一区二在线视频| 在线视频你懂得一区| a4yy欧美一区二区三区| 色久综合一二码| 色婷婷综合五月| 91精品国产色综合久久不卡蜜臀| 国产在线不卡一区| 国产剧情av麻豆香蕉精品| 不卡免费追剧大全电视剧网站| 成人听书哪个软件好| 欧美三级资源在线| 欧美另类变人与禽xxxxx|