csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
9.2 KiB
179 lines
9.2 KiB
<ResourceDictionary xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:sys="using:System"
|
|
x:ClassModifier="internal">
|
|
<Design.PreviewWith>
|
|
<Border Margin="20, 20, 20, 200">
|
|
<CalendarDatePicker Width="200" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />
|
|
</Border>
|
|
</Design.PreviewWith>
|
|
|
|
<x:Double x:Key="CalendarDatePickerCurrentDayFontSize">12</x:Double>
|
|
<x:Double x:Key="CalendarDatePickerMinHeight">32</x:Double>
|
|
|
|
<ControlTheme x:Key="FluentCalendarDatePickerButton" TargetType="Button">
|
|
<Setter Property="TextElement.Foreground" Value="{DynamicResource CalendarDatePickerCalendarGlyphForeground}" />
|
|
<Setter Property="Margin" Value="2,0,4,0" />
|
|
<Setter Property="Width" Value="20" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<Grid Height="24"
|
|
Width="20"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Margin="0"
|
|
ColumnDefinitions="*,*,*,*"
|
|
RowDefinitions="23*,19*,19*,19*"
|
|
ClipToBounds="False">
|
|
<Border Name="Background"
|
|
Margin="0,-1,0,0"
|
|
Grid.ColumnSpan="4"
|
|
Grid.Row="1"
|
|
Grid.RowSpan="3"
|
|
BorderThickness="0.5,0,0.5,0.5"
|
|
BorderBrush="{TemplateBinding Foreground}"
|
|
CornerRadius="0,0,2,2" />
|
|
<Border Grid.ColumnSpan="4"
|
|
Grid.RowSpan="1"
|
|
BorderBrush="{TemplateBinding Foreground}"
|
|
BorderThickness="0.5"
|
|
CornerRadius="2,2,0,0" />
|
|
<TextBlock Margin="0,-1,0,0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center"
|
|
Grid.Column="0"
|
|
Grid.Row="1"
|
|
Grid.ColumnSpan="4"
|
|
Grid.RowSpan="3"
|
|
Foreground="{TemplateBinding Foreground}"
|
|
FontSize="{DynamicResource CalendarDatePickerCurrentDayFontSize}"
|
|
Text="{Binding Source={x:Static sys:DateTime.Today}, Path=Day}" />
|
|
<Ellipse HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Fill="{TemplateBinding Foreground}"
|
|
StrokeThickness="0"
|
|
Grid.ColumnSpan="4"
|
|
Width="3"
|
|
Height="3" />
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme x:Key="{x:Type CalendarDatePicker}" TargetType="CalendarDatePicker">
|
|
<Setter Property="Background" Value="{DynamicResource CalendarDatePickerBackground}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource CalendarDatePickerForeground}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource CalendarDatePickerBorderBrush}" />
|
|
<Setter Property="BorderThickness" Value="{DynamicResource CalendarDatePickerBorderThemeThickness}" />
|
|
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
|
|
<Setter Property="MinHeight" Value="{DynamicResource CalendarDatePickerMinHeight}" />
|
|
<Setter Property="HorizontalAlignment" Value="Left" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="HorizontalContentAlignment" Value="Left" />
|
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
|
<Setter Property="Padding" Value="4" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<DataValidationErrors>
|
|
<Panel x:Name="LayoutRoot"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch">
|
|
<Border x:Name="Background"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
Background="{TemplateBinding Background}" />
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<TextBox Name="PART_TextBox"
|
|
Foreground="{TemplateBinding Foreground}"
|
|
Background="Transparent"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="0"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
Margin="{TemplateBinding BorderThickness}"
|
|
Padding="{TemplateBinding Padding}"
|
|
PlaceholderText="{TemplateBinding PlaceholderText}"
|
|
PlaceholderForeground="{TemplateBinding PlaceholderForeground}"
|
|
UseFloatingPlaceholder="{TemplateBinding UseFloatingPlaceholder}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
Grid.Column="0">
|
|
<TextBox.Styles>
|
|
<Style Selector="TextBox#PART_TextBox:focus /template/ Border#PART_BorderElement">
|
|
<!-- By default the TextBox has its own focused state, override this to disable it here -->
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="BorderBrush" Value="Transparent"/>
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
</Style>
|
|
<Style Selector="TextBox#PART_TextBox:disabled">
|
|
<Style Selector="^ /template/ Border#PART_BorderElement">
|
|
<!-- By default the TextBox has its own disabled state, override this to make the border background show through -->
|
|
<Setter Property="Background" Value="Transparent" />
|
|
<Setter Property="BorderBrush" Value="Transparent" />
|
|
</Style>
|
|
<Style Selector="^ /template/ TextBlock#PART_Placeholder, ^ TextBlock#PART_FloatingPlaceholder">
|
|
<Setter Property="TextElement.Foreground" Value="{DynamicResource CalendarDatePickerTextForegroundDisabled}" />
|
|
</Style>
|
|
</Style>
|
|
</TextBox.Styles>
|
|
</TextBox>
|
|
<Button Name="PART_Button"
|
|
Theme="{StaticResource FluentCalendarDatePickerButton}"
|
|
Grid.Column="1"
|
|
Focusable="False" />
|
|
<Popup Name="PART_Popup"
|
|
PlacementTarget="{TemplateBinding}"
|
|
IsLightDismissEnabled="True">
|
|
<Calendar Name="PART_Calendar"
|
|
FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}"
|
|
IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}"
|
|
SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedDate, Mode=TwoWay}"
|
|
DisplayDate="{TemplateBinding DisplayDate}"
|
|
DisplayDateStart="{TemplateBinding DisplayDateStart}"
|
|
DisplayDateEnd="{TemplateBinding DisplayDateEnd}" />
|
|
</Popup>
|
|
</Grid>
|
|
</Panel>
|
|
</DataValidationErrors>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
|
|
<!-- Pressed State -->
|
|
<Style Selector="^:pressed /template/ Border#Background">
|
|
<Setter Property="Background" Value="{DynamicResource CalendarDatePickerBackgroundPressed}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource CalendarDatePickerBorderBrushPressed}" />
|
|
</Style>
|
|
|
|
<!-- Pointer-over State -->
|
|
<Style Selector="^:pointerover /template/ Border#Background">
|
|
<Setter Property="Background" Value="{DynamicResource CalendarDatePickerBackgroundPointerOver}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource CalendarDatePickerBorderBrushPointerOver}" />
|
|
</Style>
|
|
|
|
<!-- Disabled State -->
|
|
<Style Selector="^:disabled">
|
|
<Style Selector="^ /template/ Border#Background">
|
|
<Setter Property="Background" Value="{DynamicResource CalendarDatePickerBackgroundDisabled}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource CalendarDatePickerBorderBrushDisabled}" />
|
|
</Style>
|
|
|
|
<Style Selector="^ /template/ Button#PART_Button">
|
|
<Setter Property="TextElement.Foreground" Value="{DynamicResource CalendarDatePickerCalendarGlyphForegroundDisabled}" />
|
|
</Style>
|
|
</Style>
|
|
|
|
<!-- Focused State -->
|
|
<Style Selector="^:focus-within:not(CalendarDatePicker:focus) /template/ Border#Background">
|
|
<Setter Property="Background" Value="{DynamicResource TextControlBackgroundFocused}" />
|
|
<Setter Property="BorderBrush" Value="{DynamicResource TextControlBorderBrushFocused}" />
|
|
<Setter Property="BorderThickness" Value="{DynamicResource TextControlBorderThemeThicknessFocused}" />
|
|
</Style>
|
|
|
|
<!-- Error State -->
|
|
<Style Selector="^:error /template/ Border#Background">
|
|
<Setter Property="BorderBrush" Value="{DynamicResource SystemControlErrorTextForegroundBrush}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
</ResourceDictionary>
|
|
|