C# WPF开源控件库HandyControl用法举例

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WPF开源控件库HandyControl用法举例相关的知识,希望对你有一定的参考价值。

概述

HandyControl是一款免费开源的WPF控件库,Github可以获取到源代码,相关的示例代码也在github上能获取到,但是没有详细的中文说明文档,对于新手而言使用起来还是会有一些困扰,网上也很难搜到相关的用法示例,所以本节就对它常用的一些控件举例说明下。

首先还是先在nuget上引用HC的库:

然后在前台XAML引用:

xmlns:hc="https://handyorg.github.io/handycontrol"

在App.xaml中引用HC的皮肤和主题:

<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>

MessageBox用法举例

①对话框

MessageBox.Show("检测到有版本更新,是否更新?", "标题", MessageBoxButton.YesNo, MessageBoxImage.Question);

②提示框:

MessageBox.Show("当前选中了:" + listbox.SelectedItem, "标题", MessageBoxButton.OK, MessageBoxImage.Information);

③错误框:

MessageBox.Show("当前选中了:" + listbox.SelectedItem, "标题", MessageBoxButton.OK, MessageBoxImage.Error);

总共有9个枚举量可供选择,分别如下:

//
    // 摘要:
    //     Specifies the icon that is displayed by a message box.
    public enum MessageBoxImage
    
        //
        // 摘要:
        //     The message box contains no symbols.
        None = 0,
        //
        // 摘要:
        //     The message box contains a symbol consisting of white X in a circle with a red
        //     background.
        Error = 16,
        //
        // 摘要:
        //     The message box contains a symbol consisting of a white X in a circle with a
        //     red background.
        Hand = 16,
        //
        // 摘要:
        //     The message box contains a symbol consisting of white X in a circle with a red
        //     background.
        Stop = 16,
        //
        // 摘要:
        //     The message box contains a symbol consisting of a question mark in a circle.
        //     The question mark message icon is no longer recommended because it does not clearly
        //     represent a specific type of message and because the phrasing of a message as
        //     a question could apply to any message type. In addition, users can confuse the
        //     question mark symbol with a help information symbol. Therefore, do not use this
        //     question mark symbol in your message boxes. The system continues to support its
        //     inclusion only for backward compatibility.
        Question = 32,
        //
        // 摘要:
        //     The message box contains a symbol consisting of an exclamation point in a triangle
        //     with a yellow background.
        Exclamation = 48,
        //
        // 摘要:
        //     The message box contains a symbol consisting of an exclamation point in a triangle
        //     with a yellow background.
        Warning = 48,
        //
        // 摘要:
        //     The message box contains a symbol consisting of a lowercase letter i in a circle.
        Asterisk = 64,
        //
        // 摘要:
        //     The message box contains a symbol consisting of a lowercase letter i in a circle.
        Information = 64
    

Button用法举例

①带图标的button:

<Button Height="48" Width="160" Margin="3" Name="testBtn"
                        Background="DynamicResource PrimaryBrush"
                        hc:BackgroundSwitchElement.MouseHoverBackground="DynamicResource MouseHoverBrush" 
                        hc:BackgroundSwitchElement.MouseDownBackground="DynamicResource MouseDownBrush">
                        <Button.Content>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto"/>
                                    <ColumnDefinition/>
                                </Grid.ColumnDefinitions>
                                <Image Source="pack://application:,,,/Images/icon.ico"/>
                                <Label Grid.Column="1" Content="Custom Button" BorderThickness="0" Background="Transparent" Foreground="DynamicResource TextIconBrush"/>
                            </Grid>
                        </Button.Content>
                    </Button>

②RepeatButton用法:

<RepeatButton Height="48" Width="160" Content="Repeat Button" Margin="3" Delay="500" 
                      Style="StaticResource RepeatButtonPrimary" Background="DynamicResource PrimaryBrush" 
                      Foreground="DynamicResource TextIconBrush" hc:BorderElement.CornerRadius="5" Name="RepeatButton_Click"/>

③带有日历图表的button:

<Button  Margin="5" Style="StaticResource ButtonPrimary" hc:IconElement.Geometry="StaticResource CalendarGeometry"/>
                    <Button  IsEnabled="False" Margin="5" Style="StaticResource ButtonPrimary" hc:IconElement.Geometry="StaticResource CalendarGeometry"/>

④左旋转又旋转图表button:

<Button Margin="5" Style="StaticResource ButtonSuccess" hc:IconElement.Geometry="StaticResource RotateLeftGeometry"/>
                            <Button IsEnabled="False" Margin="5" Style="StaticResource ButtonSuccess" hc:IconElement.Geometry="StaticResource RotateLeftGeometry"/>

⑤带左右箭头图标的button:

<Button Margin="5" Style="StaticResource ButtonWarning" hc:IconElement.Geometry="StaticResource LeftGeometry"/>
                    <Button Margin="5" Style="StaticResource ButtonWarning" hc:IconElement.Geometry="StaticResource RightGeometry"/>

⑥ToggleButton  按钮

<ToggleButton IsChecked="True" Margin="5,8" HorizontalAlignment="Center" Style="StaticResource ToggleButtonSwitch" hc:VisualElement.HighlightBrush="DynamicResource DangerBrush"/>
                <ToggleButton IsEnabled="False" IsChecked="True" HorizontalAlignment="Center" Margin="5,4" Style="StaticResource ToggleButtonSwitch"/>

Lable用法举例

<Label Content="DangerBrush" Style="StaticResource LabelDanger"/>
                        <Label Content="DarkPrimaryBrush" Background="DynamicResource DarkPrimaryBrush" Foreground="White" BorderThickness="0"/>

Slider用法举例

<Slider Width="400" IsSnapToTickEnabled="True" Value="8"/>
                <Slider Width="400" IsSnapToTickEnabled="True" TickFrequency="5" Maximum="100" TickPlacement="TopLeft" Value="10" IsSelectionRangeEnabled="True" SelectionStart="10" SelectionEnd="80"/>
                    <Slider Width="400" hc:TipElement.Visibility="Visible" hc:TipElement.Placement="Top" IsSnapToTickEnabled="True" Maximum="100" Value="60" TickFrequency="10" TickPlacement="BottomRight"/>
                    <Slider Width="400" hc:TipElement.Visibility="Visible" hc:TipElement.Placement="Bottom" hc:TipElement.StringFormat="#0.00" Value="5" TickPlacement="Both"/>

TextBox用法举例

<TextBox Margin="0,0,0,32" hc:InfoElement.TitleWidth="70" hc:InfoElement.Placeholder="Necessary" hc:InfoElement.TitlePlacement="Left" 
                         hc:InfoElement.Title="Left title" hc:InfoElement.Necessary="True" Style="StaticResource TextBoxExtend" Name="TextContent"/>

组合框ComboBox用法举例

<ComboBox  IsEditable="True" Width="380" hc:InfoElement.TitleWidth="140"  hc:InfoElement.TitlePlacement="Left" hc:InfoElement.Title="combox" hc:InfoElement.Necessary="True" Style="StaticResource ComboBoxExtend" Margin="0,16,0,0">
                    <ComboBoxItem>张三</ComboBoxItem>
                    <ComboBoxItem>李四</ComboBoxItem>
                    <ComboBoxItem>王五</ComboBoxItem>
                </ComboBox>

还有很多基本控件,限于篇幅本节就讲到这里,要想深入学习了解还是得下载源代码去探索调试.

源码下载

链接:https://pan.baidu.com/s/1Rdx43-8Aa21gl_YPsh6ncg 

提取码:6666

本文参考链接:https://github.com/HandyOrg/HandyControl 

以上是关于C# WPF开源控件库HandyControl用法举例的主要内容,如果未能解决你的问题,请参考以下文章

开源C# WPF控件库强力推荐

C# WPF开源控件库:MahApps.Metro

对HandyControl中的Poptip进行数据绑定

C# winform 控件大小布局适应窗口放大缩小?

C# winform程序调用第三方动态库出现问题

materialdesigninxaml-WPF开源控件库