如何解决WPF 材料设计日期选择器选择范围又名范围选择器
我搜索了很多,但找不到任何可用的解决方案,所以我决定在这里提问。我目前正在将 WPF Material design 用于多个控件 (https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit)。日期选择器工作正常,但是我已经到了需要选择日期范围而不是单个范围的地步。我需要能够这样做:
有没有办法选择范围而不是单个日期?
这是我的 Datepicker.xaml 代码的一部分:
<DatePicker x:Name="ReportDateTimePicker" HorizontalAlignment="Center" VerticalAlignment="Center" Height="40"
Padding="0,3,0" Margin="10,1,10,-1" FirstDayOfWeek="Monday" Width="148"
FontFamily="{StaticResource Roboto}"
CalendarStyle="{DynamicResource DatePickerCalendarStyle}"
SelectedDate="{Binding StartDate}"/>
这部分也来自样式 datetimepicker.xaml:
<Style targettype="{x:Type DatePicker}">
<Setter Property="Foreground" Value="#FF333333" />
<Setter Property="FontSize" Value="14" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="IsTodayHighlighted" Value="True" />
<!--<Setter Property="SelectedDateFormat" Value="Short" />-->
<Setter Property="Padding" Value="0" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<!--Set CalendarStyle to DatePickerCalendarStyle.-->
<Setter Property="CalendarStyle" Value="{DynamicResource DatePickerCalendarStyle}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate targettype="{x:Type DatePicker}">
<Border BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="{DynamicResource BorderLightColor}" Offset="0" />
<GradientStop Color="{DynamicResource BorderDarkColor}" Offset="1" />
</LinearGradientBrush>
</Border.BorderBrush>
<Border.Background>
<LinearGradientBrush EndPoint="0.5,0">
<GradientStop Color="Transparent" Offset="0" />
<GradientStop Color="Transparent" Offset="1" />
</LinearGradientBrush>
</Border.Background>
<visualstatemanager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="normal" />
<VisualState x:Name="disabled">
<Storyboard>
<DoubleAnimation Duration="0"
To="1"
Storyboard.TargetProperty="Opacity"
Storyboard.TargetName="PART_disabledVisual" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</visualstatemanager.VisualStateGroups>
<Grid x:Name="PART_Root"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="*" />
<ColumnDeFinition Width="Auto" />
</Grid.ColumnDeFinitions>
<Button x:Name="PART_Button"
Grid.Column="1"
Foreground="{TemplateBinding Foreground}"
Focusable="False"
HorizontalAlignment="Left"
Margin="3,0"
Grid.Row="0"
Style="{StaticResource DropDownButtonStyle}"
VerticalAlignment="Center" />
<DatePickerTextBox x:Name="PART_TextBox"/>
<Grid x:Name="PART_disabledVisual"
Grid.ColumnSpan="2"
Grid.Column="0"
IsHitTestVisible="False"
Opacity="0"
Grid.Row="0">
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="*" />
<ColumnDeFinition Width="Auto" />
</Grid.ColumnDeFinitions>
<Rectangle Grid.Column="0"
Fill="#A5FFFFFF"
RadiusY="1"
Grid.Row="0"
RadiusX="1" />
<Rectangle Grid.Column="1"
Fill="Transparent"
Height="30"
Margin="3,0"
RadiusY="1"
Grid.Row="0"
RadiusX="1"
Width="260"/>
<Popup x:Name="PART_Popup"
AllowsTransparency="True"
Placement="Bottom"
PlacementTarget="{Binding ElementName=PART_TextBox}"
StaysOpen="False" />
</Grid>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。