<UserControl x:Class="WpfApp.MyUserControls.MyTimePicker"
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:WpfApp.MyUserControls"
mc:Ignorable="d"
Background="White"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.Resources>
<Style TargetType="RepeatButton">
<Setter Property="Margin" Value="5"/>
</Style>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<RepeatButton x:Name="btnIncreaseHour"
Content="+"
FontSize="24"
Click="btnIncreaseHour_Click" Interval="100"></RepeatButton>
<RepeatButton x:Name="btnDecreaseHour" Content="-"
FontSize="24"
Grid.Row="1"
Click="btnDecreaseHour_Click"
Interval="100"></RepeatButton>
<RepeatButton x:Name="IncreaseMins"
Content="+"
FontSize="24"
Grid.Column="2"
Click="IncreaseMins_Click"
Interval="100"></RepeatButton>
<RepeatButton x:Name="DecreaseMins"
Content="-"
FontSize="24"
Grid.Column="2"
Grid.Row="1"
Click="DecreaseMins_Click"
Interval=" 100"></RepeatButton>
<TextBox x:Name="txtTimePicker"
FontSize="24"
FontWeight="DemiBold"
Foreground="Blue"
Grid.Column="1"
Grid.RowSpan="2"
VerticalAlignment="Center"
TextAlignment="Center"/>
</Grid>
</UserControl>
.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp.MyUserControls
{
/// <summary>
/// MyTimePicker.xaml 的交互逻辑
/// </summary>
public partial class MyTimePicker : UserControl
{
public MyTimePicker()
{
InitializeComponent();
txtTimePicker.Text = $"{hour:00}:{min:00}";
}
int hour = DateTime.Now.Hour;
int min = DateTime.Now.Minute;
private void btnIncreaseHour_Click(object sender, RoutedEventArgs e)
{
hour++;
if (hour == 24)
{
hour = 0;
}
txtTimePicker.Text = $"{hour:00}:{min:00}";
}
private void btnDecreaseHour_Click(object sender, RoutedEventArgs e)
{
hour--;
if (hour == -1)
{
hour = 23;
}
txtTimePicker.Text = $"{hour:00}:{min:00}";
}
private void IncreaseMins_Click(object sender, RoutedEventArgs e)
{
min++;
if (min == 60)
{
min = 0;
}
txtTimePicker.Text = $"{hour:00}:{min:00}";
}
private void DecreaseMins_Click(object sender, RoutedEventArgs e)
{
min--;
if (min == -1)
{
min = 59;
}
txtTimePicker.Text = $"{hour:00}:{min:00}";
}
}
}
mainwindow
<Window x:Class="WpfApp.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:WpfApp"
mc:Ignorable="d"
xmlns:UC="clr-namespace:WpfApp.MyUserControls"
Title="User Control" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Margin="5" Background="LightSkyBlue">
<TextBlock FontSize="20" HorizontalAlignment="Center">用户自定义控件</TextBlock>
<TextBlock>演示创建自定义控件</TextBlock>
<TextBlock>演示如何使用自定义控件</TextBlock>
</StackPanel>
<UC:MyTimePicker Grid.Row="0" Grid.Column="1" Margin="5"></UC:MyTimePicker>
<UC:MyTimePicker Grid.Column="1" HorizontalAlignment="Left" Margin="39,0,0,0" Grid.Row="1" VerticalAlignment="Center"/>
<UC:MyTimePicker Grid.Column="1" HorizontalAlignment="Left" Margin="230,0,0,0" Grid.Row="1" VerticalAlignment="Center"/>
</Grid>
</Window>
.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp6
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
}
}
}
(229条消息) WPF 自定义UserControl_flysh05的博客-CSDN博客_wpf中usercontrol(229条消息) WPF 自定义UserControl_flysh05的博客-CSDN博客_wpf中usercontrol