国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WPF常用UI庫(kù)和圖標(biāo)庫(kù)(MahApps、HandyControl、LiveCharts)

這篇具有很好參考價(jià)值的文章主要介紹了WPF常用UI庫(kù)和圖標(biāo)庫(kù)(MahApps、HandyControl、LiveCharts)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

WPF常用UI庫(kù)和圖表庫(kù)(MahApps、HandyControl、LiveCharts)

WPF有很多開源免費(fèi)的UI庫(kù),本文主要介紹常見的MahApps、HandyControl兩個(gè)UI庫(kù);在開發(fā)過程中經(jīng)常會(huì)涉及到圖表的開發(fā),本文主要介紹LiveCharts開源圖表庫(kù)。

UI庫(kù)

第三方UI庫(kù)的使用一般都是三步:

  1. Nuget安裝
  2. 在APP.xaml中增加資源
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="..........xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
  1. 在MainWindow.xaml中引用命名空間xmlns:xxxx="xxxxxxx"

MahApps

MahApps.Metro官方網(wǎng)站

  1. Nuget安裝MahApps.Metro
  2. App.xaml中增加
<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Blue.xaml" />
</ResourceDictionary.MergedDictionaries>
  1. 在MainWindow.xaml中引用命名空間xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"

該UI庫(kù)不僅擴(kuò)展了很多擴(kuò)展控件,還對(duì)原生的控件進(jìn)行了美化??匆粋€(gè)簡(jiǎn)單案例

<mah:MetroWindow x:Class="Zhaoxi.MahAppsApp.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:Zhaoxi.MahAppsApp"
        xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
        mc:Ignorable="d" FontSize="20" WindowStartupLocation="CenterScreen"
        Title="MainWindow" Height="450" Width="800">
    <mah:MetroWindow.LeftWindowCommands>
        <mah:WindowCommands>
            <Button Content="A"/>
        </mah:WindowCommands>
    </mah:MetroWindow.LeftWindowCommands>
    <mah:MetroWindow.RightWindowCommands>
        <mah:WindowCommands>
            <Button Content="B"/>
            <Button Content="C"/>
            <Button Content="D"/>
            <Button Content="E"/>
        </mah:WindowCommands>
    </mah:MetroWindow.RightWindowCommands>
    <Grid>
        <StackPanel>
            <Button Content="Button" Width="200" Height="30" Style="{StaticResource MahApps.Styles.Button.Hamburger}"/>
            <TextBox Text="Hello" Width="200"/>
            <TabControl>
                <TabItem Header="AAA"/>
                <TabItem Header="BBB"/>
                <TabItem Header="CCCC"/>
                <TabItem Header="DDDD"/>
            </TabControl>
            <mah:MetroTabControl>
                <mah:MetroTabItem Header="AAA" CloseButtonEnabled="True"/>
                <mah:MetroTabItem Header="AAA" CloseButtonEnabled="True"/>
                <mah:MetroTabItem Header="AAA"/>
                <mah:MetroTabItem Header="AAA"/>
                <mah:MetroTabItem Header="AAA"/>
            </mah:MetroTabControl>
           
            <mah:FlipView BannerText="Hello" IsBannerEnabled="False">
                <mah:FlipViewItem Height="100" Width="300">
                    <Border Background="Orange"/>
                </mah:FlipViewItem>
                <mah:FlipViewItem Height="100" Width="300">
                    <Border Background="Green"/>
                </mah:FlipViewItem>
            </mah:FlipView>
            
        </StackPanel>
    </Grid>
</mah:MetroWindow>

因?yàn)樯婕暗搅舜绑w,所以在后臺(tái)類中需要繼承MetroWindow

handycontrol 圖標(biāo),WPF,wpf,ui

HandyControl

使用方法類似,Nuget安裝HandyControl

App.xaml中引入

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
            <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

HandyOrg中文官方文檔

官方網(wǎng)站上詳細(xì)介紹了各控件的使用方法和控件的展示效果,并且網(wǎng)站是中文的十分友好,詳細(xì)使用說明直接查看官網(wǎng)即可。

handycontrol 圖標(biāo),WPF,wpf,ui

圖表庫(kù)

Nuget包安裝LiveCharts.Wpf

引入命名空間xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"

<Grid>
    <lvc:CartesianChart DisableAnimations="False" Zoom="Xy">
        <lvc:CartesianChart.Series>
            <lvc:LineSeries ScalesYAt="1" Values="{Binding Values}" />
            <lvc:ColumnSeries Values="{Binding Values2}" />
        </lvc:CartesianChart.Series>
        <lvc:CartesianChart.AxisX>
            <lvc:Axis
                Title="時(shí)間"
                Labels="{Binding xLabels}"
                LabelsRotation="-45">
                <lvc:Axis.Separator>
                    <lvc:Separator Step="1" />
                </lvc:Axis.Separator>
            </lvc:Axis>
        </lvc:CartesianChart.AxisX>
        <lvc:CartesianChart.AxisY>
            <lvc:Axis
                Title="溫度"
                MaxValue="100"
                MinValue="0">
                <lvc:Axis.Separator>
                    <lvc:Separator Step="10" />
                </lvc:Axis.Separator>
            </lvc:Axis>
            <lvc:Axis
                Title="壓力"
                MaxValue="100"
                MinValue="0"
                Position="RightTop">
                <lvc:Axis.Separator>
                    <lvc:Separator Step="10" />
                </lvc:Axis.Separator>
            </lvc:Axis>
        </lvc:CartesianChart.AxisY>
    </lvc:CartesianChart>
</Grid>

ModelView

public class MainViewModel
{
    public ChartValues<double> Values { get; set; }
    public ChartValues<double> Values2 { get; set; }

    public ObservableCollection<string> xLabels { get; set; }
    public MainViewModel()
    {
        Values = new ChartValues<double>();
        Values2 = new ChartValues<double>();
        xLabels = new ObservableCollection<string>();
        Random random = new Random();

        Task.Factory.StartNew(async () =>
        {
            while (true)
            {
                await Task.Delay(1000);
                Values.Add(random.Next(10, 80));
                Values2.Add(random.Next(10,90));
                xLabels.Add(DateTime.Now.ToString("mm:ss"));

                if (Values.Count > 50)
                {
                    Values.RemoveAt(0);
                    Values2.RemoveAt(0);
                    xLabels.RemoveAt(0);
                }

            }
        });
    }
}

handycontrol 圖標(biāo),WPF,wpf,ui

更多使用方法見官方網(wǎng)站

LiveCharts滿足基本的需求,但是如果數(shù)據(jù)量較大的話,性能會(huì)大打折扣,如果追求性能可以使用下ScottPlot開源庫(kù),但是該庫(kù)某些功能沒有實(shí)現(xiàn)。如果對(duì)性能有較高的要求,也可以使用LightningChart.NET,不過這是收費(fèi)的組件庫(kù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-567842.html

到了這里,關(guān)于WPF常用UI庫(kù)和圖標(biāo)庫(kù)(MahApps、HandyControl、LiveCharts)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WPF圖表繪制(LiveCharts)

    WPF圖表繪制(LiveCharts)

    效果如下圖: 使用到的DLL:LiveCharts.dll、LiveCharts.Wpf.dll xaml界面代碼(前臺(tái)代碼) viewmodel代碼(后臺(tái)代碼) xaml界面代碼(前臺(tái)代碼) viewmodel代碼(后臺(tái)代碼) public void GetColunmSeriesData() { List columnValues = new List { 40, 30, 25, 60 }; for (int i = 0; i titles.Count; i++) { ColumnXLabels.Add(titles[

    2024年02月04日
    瀏覽(14)
  • WPF livecharts 折線圖遮擋數(shù)字問題

    在WPF里使用livecharts,如果折線圖或者柱狀圖有多個(gè)的時(shí)候,可能會(huì)出現(xiàn)兩個(gè)數(shù)字遮擋問題,這時(shí)候要設(shè)置DataLabelsTemplate 屬性。 如LineSeries設(shè)置代碼如下: 第一個(gè)折線圖的DataLabelsTemplate 第二個(gè)折線圖的DataLabelsTemplate 設(shè)置LineSeries 具體位置可能要根據(jù)你的圖表大小調(diào)整,主要就

    2024年02月07日
    瀏覽(12)
  • WPF開源控件HandyControl——零基礎(chǔ)教程

    WPF開源控件HandyControl——零基礎(chǔ)教程

    中文文檔:歡迎使用HandyControl | HandyOrg Github代碼:https://github.com/HandyOrg/HandyControl 使用教程:WPF-HandyControl安裝和使用 - 掘金 創(chuàng)建wpf項(xiàng)目 NuGet安裝handycontrol控件 在 App.xaml配置HandyControl,一個(gè)是皮膚資源,一個(gè)是主題資源 注: 報(bào)錯(cuò)信息 :XDG0010未能加載文件或程序集“HandyCont

    2024年02月06日
    瀏覽(42)
  • 手把手一起使用開源WPF控件HandyControl

    手把手一起使用開源WPF控件HandyControl

    首先創(chuàng)建WPF工程 點(diǎn)擊工具-NuGet包管理器-管理解決方案的NuGet程序包,如圖所示: 直接搜索HandyControl,如圖所示: 點(diǎn)擊安裝: 安裝完成: 在App.xaml中加入如下代碼: 如圖所示: 工具箱中已新增HandyControl,可以開始使用,如圖所示: HandyControl: https://github.com/NaBian/HandyControl 希

    2024年02月05日
    瀏覽(26)
  • C# WPF 開源主題 HandyControl 的使用(一)

    C# WPF 開源主題 HandyControl 的使用(一)

    HandyControl是一套WPF控件庫(kù),它幾乎重寫了所有原生樣式,同時(shí)包含80余款自定義控件(正逐步增加),下面我們開始使用。 1.1 創(chuàng)建項(xiàng)目 C#? WPF應(yīng)用(.NET Framework)創(chuàng)建項(xiàng)目 1.2 添加包 1.3??在App.xaml中引用HandyControl的皮膚和主題: 1.4?窗體文件xaml添加引用 xmlns:hc=\\\"https://handyorg.gi

    2024年02月13日
    瀏覽(10)
  • WPF HandyControl 界面交互反饋:對(duì)話框+加載框+列表選擇

    WPF HandyControl 界面交互反饋:對(duì)話框+加載框+列表選擇

    我學(xué)了HandyControl的基礎(chǔ)使用,但是發(fā)現(xiàn)HandyControl 封裝了基礎(chǔ)的消息提示,但是沒有封裝基礎(chǔ)的交互邏輯。可能是因?yàn)槲覍懥薝niapp,我知道封裝了基礎(chǔ)的交互其實(shí)一般就夠用了。 Uniapp 界面交互反饋 我現(xiàn)在覺得,代碼要低耦合一點(diǎn),每個(gè)模塊都純粹一點(diǎn),這一次我就不添加Nl

    2024年01月19日
    瀏覽(24)
  • 循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(1)

    循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(1)

    在我們的SqlSugar的開發(fā)框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移動(dòng)前端幾個(gè)前端處理,基本上覆蓋了我們?nèi)粘5膽?yīng)用模式了,本篇隨筆進(jìn)一步介紹前端應(yīng)用的領(lǐng)域,研究集成WPF的應(yīng)用端,循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端

    2024年02月09日
    瀏覽(30)
  • 循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(2)

    循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(2)

    在前面隨筆《循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(1)》中介紹了Mvvm 的開發(fā),以及一些界面效果,本篇隨筆繼續(xù)深入探討基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā),介紹如何整合SqlSugar框架的基礎(chǔ)接口,通過基類繼承的方式,簡(jiǎn)化實(shí)際項(xiàng)目的開

    2024年02月09日
    瀏覽(31)
  • 循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(3)--自定義用戶控件

    循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(3)--自定義用戶控件

    在我們創(chuàng)建界面元素的時(shí)候,不管在Vue3+ElementPlus的前端上,還是Winform桌面端上,都是會(huì)利用自定義用戶控件來快速重用一些自定義的界面內(nèi)容,對(duì)自定義用戶控件的封裝處理,也是我們開發(fā)WPF應(yīng)用需要熟悉的一環(huán)。本篇隨筆繼續(xù)深入介紹介紹基于CommunityToolkit.Mvvm 和HandyCont

    2024年02月09日
    瀏覽(20)
  • 循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(5) -- 樹列表TreeView的使用

    循序漸進(jìn)介紹基于CommunityToolkit.Mvvm 和HandyControl的WPF應(yīng)用端開發(fā)(5) -- 樹列表TreeView的使用

    在我們展示一些參考信息的時(shí)候,有所會(huì)用樹形列表來展示結(jié)構(gòu)信息,如對(duì)于有父子關(guān)系的多層級(jí)部門機(jī)構(gòu),以及一些常用如字典大類節(jié)點(diǎn),也都可以利用樹形列表的方式進(jìn)行展示,本篇隨筆介紹基于WPF的方式,使用TreeView來洗實(shí)現(xiàn)結(jié)構(gòu)信息的展示,以及對(duì)它的菜單進(jìn)行的設(shè)

    2024年02月08日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包