wpf自定义控件

wpf 中自定义控件及其使用

≯℡__Kan透↙ 提交于 2019-12-09 03:31:17
主要有3个步骤: 1. 首先创建一个自定义的控件,该控件继承 TextBox namespace EzIntePark.Presentation.Common { /// <summary> /// 数字框,继承文本框,仅限数字输入,扩展 Value(decimal) /// </summary> public class ExNumericBox:TextBox { #region Dependency properties public int Digits { get { return (int)GetValue(DigitsProperty); } set { SetValue(DigitsProperty, value); } } public static readonly DependencyProperty DigitsProperty = DependencyProperty.Register("Digits", typeof(int), typeof(ExNumericBox), new PropertyMetadata(2)); public decimal Value { get { return (decimal)GetValue(ValueProperty); } set { SetValue(ValueProperty,value); } }

wpf 两个自定义控件

女生的网名这么多〃 提交于 2019-12-04 05:43:12
原文: wpf 两个自定义控件 wpf 两个自定义控件 一个是IP控件,一个滑动条。先看下效果图 IPControl 1、实际工作中有时需要设置IP信息,就想着做一个ip控件。效果没有window自带的好,需要通过tab切换。但也能满足使用。废话不多说直接上代码 IPControl.xaml <UserControl x:Class="WpfApp1.IPControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1"> <Viewbox> <Border> <DockPanel> <DockPanel.Resources> <Style TargetType="{x:Type TextBox}"> <Setter Property="HorizontalContentAlignment" Value="Center"/> <Setter Property="VerticalContentAlignment" Value="Top"/> <Setter Property="TextAlignment" Value=

wpf 两个自定义控件

拜拜、爱过 提交于 2019-12-04 04:35:06
wpf 两个自定义控件 一个是IP控件,一个滑动条。先看下效果图 IPControl 1、实际工作中有时需要设置IP信息,就想着做一个ip控件。效果没有window自带的好,需要通过tab切换。但也能满足使用。废话不多说直接上代码 IPControl.xaml <UserControl x:Class="WpfApp1.IPControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1"> <Viewbox> <Border> <DockPanel> <DockPanel.Resources> <Style TargetType="{x:Type TextBox}"> <Setter Property="HorizontalContentAlignment" Value="Center"/> <Setter Property="VerticalContentAlignment" Value="Top"/> <Setter Property="TextAlignment" Value="Center"/> <Setter

[WPF自定义控件]?使用WindowChrome自定义Window Style

匿名 (未验证) 提交于 2019-12-02 23:40:02
原文: [WPF自定义控件]?使用WindowChrome自定义Window Style 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的;二来多一行的空间可以添加很多功能,尤其是上边缘,因为被屏幕限制住鼠标的移动所以上边缘的按钮很容易选中。做桌面开发总有一天会遇到自定义Window的需求,所以我在控件库中也提供了一个简单的自定义Window。 我在上一篇文章介绍了标准Window的功能,我想实现一个包含这些基本功能的,窄边框、扁平化的Window,基本上模仿Windows 10 的Window,但要可以方便地自定义样式;阴影、动画效果保留系统默认的就可以了,基本上会很耐看。最后再放置一个FunctionBar方便添加更多功能。 最后成果如下: 这是一个名为ExtendedWindow的自定义Window,源码地址可见文章最后。 3. WindowChrome WPF有两种主流的自定义Window的方案,《WPF编程宝典》介绍了使用 WindowStyle="None" 和 AllowsTransparency="True" 创建无边框的Window然后在里面仿造一个Window,以前也有很多博客详细介绍了这种方式,这里就不再赘述。这种方法的原理是从Window中删除non

WPF自定义控件的制作

匿名 (未验证) 提交于 2019-12-02 22:09:29
  因为有时候需要定制化的控件,需要多个控件的组合及复杂功能的集成,这样可以考虑自定义用户控件。下面分享一个简单的数值增减功能的自定义控件作为说明。 效果图如下: 1、创建自定义用户控件(添加->新建项->用户控件) 2、编写XAML <UserControl x:Class="XXX.自定义控件.MyNumericUpDown" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:XXX.自定义控件" mc:Ignorable="d" d:DesignHeight="30" d:DesignWidth="120"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition

[WPF自定义控件库] 模仿UWP的ProgressRing

你。 提交于 2019-12-01 20:35:51
原文: [WPF自定义控件库] 模仿UWP的ProgressRing 1. 为什么需要ProgressRing # 虽然我认为这个控件库的控件需要模仿Aero2的外观,但总有例外,其中一个就是ProgressRing。ProgressRing是来自UWP的控件,部分代码参考了 这里 。ProgressRing的使用方式运行效果如下: Copy <kino:ProgressRing IsActive="True" Height="40" Width="40" Margin="8" MinHeight="9" MinWidth="9" /> 在Windows 10中ProgressRing十分常见,而且十分好用。它还支持自适应尺寸,在紧凑的地方使用ProgressRing会给UI增色不少,而且不会显得格格不入: 那为什么不使用ProgressBar?其中一个原因是ProgressBar功能太多,而我很多时候只需要一个简单的显示正在等待的元素,另一个原因是条状的ProgressBar在紧凑的地方不好看,所以才需要结构相对简单的ProgressRing。 2. 基本结构 # Copy [TemplateVisualState(GroupName = VisualStates.GroupActive, Name = VisualStates.StateActive)]

[WPF自定义控件库] 给WPF一个HyperlinkButton

纵然是瞬间 提交于 2019-12-01 20:35:45
原文: [WPF自定义控件库] 给WPF一个HyperlinkButton 1. 在WPF怎么在UI上添加超级链接 # 这篇文章的目的是介绍怎么在WPF里创建自定义的HyperlinkButton控件。很神奇的,WPF居然连HyperlinkButton都没有,不过它提供了另一种方式用于在UI上添加超级链接: Copy<TextBlock FontSize="20"> <Hyperlink NavigateUri="http://www.google.com" RequestNavigate="Hyperlink_RequestNavigate"> Click here </Hyperlink> </TextBlock> Copyprivate void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) { Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); e.Handled = true; } 如果需要在超级链接里放图片或其它东西,代码如下: Copy<TextBlock FontSize="20"> <Hyperlink NavigateUri="https://www.microsoft.com" RequestNavigate

WPF自定义控件的制作

大兔子大兔子 提交于 2019-11-30 05:51:02
  因为有时候需要定制化的控件,需要多个控件的组合及复杂功能的集成,这样可以考虑自定义用户控件。下面分享一个简单的数值增减功能的自定义控件作为说明。 效果图如下: 1、创建自定义用户控件(添加->新建项->用户控件) 2、编写XAML <UserControl x:Class="XXX.自定义控件.MyNumericUpDown" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:XXX.自定义控件" mc:Ignorable="d" d:DesignHeight="30" d:DesignWidth="120"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition