<UserControl x:Class="NEIntelligentControl2.Views.Basic.TimePicker" 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:NEIntelligentControl2.Views.Basic" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="120"> <UserControl.Resources> <local:DateTimeConver x:Key="dtc"/> <SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/> <SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/> <SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/> <Style x:Key="TextBoxStyleDateTime" TargetType="{x:Type TextBox}"> <Setter Property="Background" Value="WhiteSmoke"/> <Setter Property="BorderBrush" Value="{StaticResource TextBox.Static.Border}"/> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> <Setter Property="FocusVisualStyle" Value="{x:Null}"/> <Setter Property="AllowDrop" Value="true"/> <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/> <Setter Property="Stylus.IsFlicksEnabled" Value="False"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" MinHeight="23"> <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" VerticalAlignment="Center"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Opacity" TargetName="border" Value="0.56"/> </Trigger> <Trigger Property="IsMouseOver" Value="true"> <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/> </Trigger> <Trigger Property="IsKeyboardFocused" Value="true"> <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsInactiveSelectionHighlightEnabled" Value="true"/> <Condition Property="IsSelectionActive" Value="false"/> </MultiTrigger.Conditions> <Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/> </MultiTrigger> </Style.Triggers> </Style> <Style TargetType="{x:Type ScrollBar}"> <Setter Property="Background" Value="#77F0F8FF"/> <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/> <Setter Property="Stylus.IsFlicksEnabled" Value="false"/> <!--滚动条宽度--> <Setter Property="Width" Value="8"/> <Setter Property="MinWidth" Value="6"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ScrollBar}"> <!--滚动条背景色--> <Grid x:Name="Bg" Background="#77DDDDDD" SnapsToDevicePixels="true" Width="8"> <Grid.RowDefinitions> <RowDefinition /> </Grid.RowDefinitions> <Track x:Name="PART_Track" IsDirectionReversed="true" IsEnabled="{TemplateBinding IsMouseOver}"> <Track.DecreaseRepeatButton> <RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource VerticalScrollBarPageButton}"/> </Track.DecreaseRepeatButton> <Track.IncreaseRepeatButton> <RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource VerticalScrollBarPageButton}"/> </Track.IncreaseRepeatButton> <Track.Thumb> <Thumb Style="{StaticResource ScrollBarThumb}"/> </Track.Thumb> </Track> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Background" TargetName="Bg" Value="{StaticResource ScrollBarDisabledBackground}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="Orientation" Value="Horizontal"> <Setter Property="Width" Value="Auto"/> <Setter Property="MinWidth" Value="0"/> <Setter Property="Height" Value="6"/> <Setter Property="MinHeight" Value="6"/> <Setter Property="Background" Value="#77F0F8FF"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ScrollBar}"> <Grid x:Name="Bg" Background="#77DDDDDD" SnapsToDevicePixels="true"> <Grid.ColumnDefinitions> <ColumnDefinition /> </Grid.ColumnDefinitions> <Track x:Name="PART_Track" IsEnabled="{TemplateBinding IsMouseOver}"> <Track.DecreaseRepeatButton> <RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}"/> </Track.DecreaseRepeatButton> <Track.IncreaseRepeatButton> <RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource HorizontalScrollBarPageButton}"/> </Track.IncreaseRepeatButton> <Track.Thumb> <Thumb Style="{StaticResource ScrollBarThumb}" /> </Track.Thumb> </Track> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Background" TargetName="Bg" Value="{StaticResource ScrollBarDisabledBackground}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Trigger> </Style.Triggers> </Style> </UserControl.Resources> <Grid x:Name="_gd"> <TextBox x:Name="_tb" Style="{DynamicResource TextBoxStyleDateTime}" PreviewMouseLeftButtonDown="TextBox_PreviewMouseLeftButtonDown" Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}, Path=SelectedDateTime, Converter={StaticResource dtc}}" LostFocus="TextBox_LostFocus"/> <Popup x:Name="_popup" AllowsTransparency="True" PopupAnimation="Fade" Focusable="True" PlacementTarget="{Binding ElementName=_gd}" Placement="Bottom"> <Border Background="WhiteSmoke" CornerRadius="7" Margin="5" Height="207" Width="310" x:Name="_bd" Focusable="True"> <Border.Effect> <DropShadowEffect ShadowDepth="0" RenderingBias="Quality"/> </Border.Effect> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Calendar SelectedDatesChanged="Calendar_SelectedDatesChanged" Grid.RowSpan="2" Focusable="False"/> <TextBlock Grid.Column="1" Text="时" HorizontalAlignment="Center"/> <TextBlock Grid.Column="2" Text="分" HorizontalAlignment="Center"/> <ListBox x:Name="_lbhour" Grid.Row="1" Grid.Column="1" Margin="3,0,0,3" SelectionChanged="ListBox_SelectionChanged" Tag="hour"/> <ListBox x:Name="_lbminute" Grid.Row="1" Grid.Column="2" Margin="0,0,0,3" SelectionChanged="ListBox_SelectionChanged" Tag="minute"/> <StackPanel Grid.Row="2" Grid.ColumnSpan="10" HorizontalAlignment="Right" Orientation="Horizontal"> <Button Content="确 定" Padding="12,3" Margin="3" Click="Button_Click" Tag="ok" IsDefault="True" Style="{StaticResource ConfirmButtonStyle}"/> <Button Content="取 消" Padding="12,3" Margin="0,3" Click="Button_Click" Tag="cancel" Style="{StaticResource CancelButtonStyle}"/> </StackPanel> </Grid> </Border> </Popup> </Grid> </UserControl>