Themes/MaterialDesignTheme.NumericUpDown.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:internal="clr-namespace:MaterialDesignThemes.Wpf.Internal" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBox.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="MaterialDesignNumericUpDownButtonsStyle" TargetType="{x:Type ButtonBase}" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Focusable" Value="False" /> <Setter Property="Height" Value="18" /> <Setter Property="Padding" Value="0" /> <Setter Property="VerticalAlignment" Value="Center" /> </Style> <wpf:PackIcon x:Key="ContentIncrease" x:Shared="False" Kind="Plus" /> <wpf:PackIcon x:Key="ContentDecrease" x:Shared="False" Kind="Minus" /> <Style x:Key="MaterialDesignNumericUpDown" TargetType="{x:Type wpf:UpDownBase}"> <Style.Resources> <Style x:Key="NestedTextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}" /> <Style x:Key="NestedNumericUpDownButtonsStyle" TargetType="{x:Type ButtonBase}" BasedOn="{StaticResource MaterialDesignNumericUpDownButtonsStyle}" /> </Style.Resources> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ForegroundLight}" /> <Setter Property="BorderThickness" Value="0,0,0,1" /> <Setter Property="DecreaseContent" Value="{StaticResource ContentDecrease}" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="IncreaseContent" Value="{StaticResource ContentIncrease}" /> <Setter Property="MinWidth" Value="100" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.TextBoxDefaultPadding}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type wpf:UpDownBase}"> <ControlTemplate.Resources> <converters:ThicknessCloneConverter x:Key="NumericUpDownPaddingConverter" AdditionalOffsetRight="55" CloneEdges="All" /> <converters:ThicknessCloneConverter x:Key="PartButtonMarginConverter" CloneEdges="Top,Right,Bottom" FixedLeft="0" /> <converters:NonDefaultThicknessConverter x:Key="OutlinedBorderInactiveThicknessConverter" DefaultThickness="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" /> <converters:NonDefaultThicknessConverter x:Key="OutlinedBorderActiveThicknessConverter" DefaultThickness="{x:Static wpf:Constants.DefaultOutlinedBorderActiveThickness}" /> </ControlTemplate.Resources> <Border CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}"> <Grid> <TextBox x:Name="PART_TextBox" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding, Converter={StaticResource NumericUpDownPaddingConverter}}" VerticalAlignment="Stretch" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" internal:InternalTextFieldAssist.IsMouseOver="{TemplateBinding IsMouseOver}" wpf:HintAssist.Background="{TemplateBinding wpf:HintAssist.Background}" wpf:HintAssist.FloatingOffset="{TemplateBinding wpf:HintAssist.FloatingOffset}" wpf:HintAssist.FloatingScale="{TemplateBinding wpf:HintAssist.FloatingScale}" wpf:HintAssist.FontFamily="{TemplateBinding wpf:HintAssist.FontFamily}" wpf:HintAssist.Foreground="{TemplateBinding wpf:HintAssist.Foreground}" wpf:HintAssist.HelperTextStyle="{TemplateBinding wpf:HintAssist.HelperTextStyle}" wpf:HintAssist.Hint="{TemplateBinding wpf:HintAssist.Hint}" wpf:HintAssist.HintOpacity="{TemplateBinding wpf:HintAssist.HintOpacity}" wpf:HintAssist.IsFloating="{TemplateBinding wpf:HintAssist.IsFloating}" wpf:TextFieldAssist.DecorationVisibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}" wpf:TextFieldAssist.HasClearButton="{TemplateBinding wpf:TextFieldAssist.HasClearButton}" wpf:TextFieldAssist.HasFilledTextField="{TemplateBinding wpf:TextFieldAssist.HasFilledTextField}" wpf:TextFieldAssist.HasLeadingIcon="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon}" wpf:TextFieldAssist.HasOutlinedTextField="{TemplateBinding wpf:TextFieldAssist.HasOutlinedTextField}" wpf:TextFieldAssist.HasTrailingIcon="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon}" wpf:TextFieldAssist.IconVerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" wpf:TextFieldAssist.LeadingIcon="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" wpf:TextFieldAssist.LeadingIconSize="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" wpf:TextFieldAssist.NewSpecHighlightingEnabled="{TemplateBinding wpf:TextFieldAssist.NewSpecHighlightingEnabled}" wpf:TextFieldAssist.OutlinedBorderActiveThickness="{TemplateBinding wpf:TextFieldAssist.OutlinedBorderActiveThickness}" wpf:TextFieldAssist.PrefixText="{TemplateBinding wpf:TextFieldAssist.PrefixText}" wpf:TextFieldAssist.PrefixTextHintBehavior="{TemplateBinding wpf:TextFieldAssist.PrefixTextHintBehavior}" wpf:TextFieldAssist.PrefixTextVisibility="{TemplateBinding wpf:TextFieldAssist.PrefixTextVisibility}" wpf:TextFieldAssist.RippleOnFocusEnabled="{TemplateBinding wpf:TextFieldAssist.RippleOnFocusEnabled}" wpf:TextFieldAssist.SuffixText="{TemplateBinding wpf:TextFieldAssist.SuffixText}" wpf:TextFieldAssist.SuffixTextHintBehavior="{TemplateBinding wpf:TextFieldAssist.SuffixTextHintBehavior}" wpf:TextFieldAssist.SuffixTextVisibility="{TemplateBinding wpf:TextFieldAssist.SuffixTextVisibility}" wpf:TextFieldAssist.TextBoxViewMargin="{TemplateBinding wpf:TextFieldAssist.TextBoxViewMargin}" wpf:TextFieldAssist.TextBoxViewVerticalAlignment="{TemplateBinding wpf:TextFieldAssist.TextBoxViewVerticalAlignment}" wpf:TextFieldAssist.TextFieldCornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" wpf:TextFieldAssist.TrailingIcon="{TemplateBinding wpf:TextFieldAssist.TrailingIcon}" wpf:TextFieldAssist.TrailingIconSize="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" wpf:TextFieldAssist.UnderlineBrush="{TemplateBinding wpf:TextFieldAssist.UnderlineBrush}" wpf:TextFieldAssist.UnderlineCornerRadius="{TemplateBinding wpf:TextFieldAssist.UnderlineCornerRadius}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Focusable="{TemplateBinding Focusable}" Style="{DynamicResource NestedTextBoxStyle}" /> <StackPanel HorizontalAlignment="Right" Orientation="Horizontal"> <RepeatButton x:Name="PART_DecreaseButton" Margin="{TemplateBinding Padding, Converter={StaticResource PartButtonMarginConverter}}" Content="{TemplateBinding DecreaseContent}" Foreground="{Binding ElementName=PART_TextBox, Path=Foreground}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Style="{DynamicResource NestedNumericUpDownButtonsStyle}" /> <RepeatButton x:Name="PART_IncreaseButton" Margin="{TemplateBinding Padding, Converter={StaticResource PartButtonMarginConverter}}" Content="{TemplateBinding IncreaseContent}" Foreground="{Binding ElementName=PART_TextBox, Path=Foreground}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Style="{DynamicResource NestedNumericUpDownButtonsStyle}" /> </StackPanel> </Grid> </Border> <ControlTemplate.Triggers> <!-- PART_Button hovering --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="True" /> <Condition SourceName="PART_DecreaseButton" Property="IsMouseOver" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="PART_DecreaseButton" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </MultiTrigger> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="PART_DecreaseButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="True" /> <Condition SourceName="PART_IncreaseButton" Property="IsMouseOver" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="PART_IncreaseButton" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </MultiTrigger> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="PART_IncreaseButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" /> </Trigger> <!-- Validation.HasError --> <Trigger Property="Validation.HasError" Value="True"> <Setter TargetName="PART_TextBox" Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="PART_TextBox" Property="wpf:ValidationAssist.HasError" Value="True" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Validation.ErrorTemplate" Value="{StaticResource MaterialDesignValidationErrorTemplate}" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="internal:ClearText.HandlesClearCommand" Value="True" /> <Setter Property="wpf:HintAssist.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="wpf:HintAssist.HelperTextStyle" Value="{StaticResource MaterialDesignHelperTextBlock}" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMargin}" /> <Setter Property="wpf:TextFieldAssist.UnderlineBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </Style> <Style x:Key="MaterialDesignFloatingHintUpDownBase" TargetType="{x:Type wpf:UpDownBase}" BasedOn="{StaticResource MaterialDesignNumericUpDown}"> <Style.Resources> <Style x:Key="NestedTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource MaterialDesignFloatingHintTextBox}" /> </Style.Resources> <Setter Property="Padding" Value="{x:Static wpf:Constants.FloatingTextBoxDefaultPadding}" /> <Setter Property="wpf:HintAssist.IsFloating" Value="True" /> </Style> <Style x:Key="MaterialDesignFloatingHintNumericUpDown" TargetType="{x:Type wpf:NumericUpDown}" BasedOn="{StaticResource MaterialDesignFloatingHintUpDownBase}" /> <Style x:Key="MaterialDesignFloatingHintDecimalUpDown" TargetType="{x:Type wpf:DecimalUpDown}" BasedOn="{StaticResource MaterialDesignFloatingHintUpDownBase}" /> <Style x:Key="MaterialDesignFilledUpDownBase" TargetType="{x:Type wpf:UpDownBase}" BasedOn="{StaticResource MaterialDesignFloatingHintUpDownBase}"> <Style.Resources> <Style x:Key="NestedTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource MaterialDesignFilledTextBox}" /> </Style.Resources> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.TextBox.FilledBackground}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FilledTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4,4,0,0" /> <Setter Property="wpf:TextFieldAssist.UnderlineCornerRadius" Value="0" /> </Style> <Style x:Key="MaterialDesignFilledNumericUpDown" TargetType="{x:Type wpf:NumericUpDown}" BasedOn="{StaticResource MaterialDesignFilledUpDownBase}" /> <Style x:Key="MaterialDesignFilledDecimalUpDown" TargetType="{x:Type wpf:DecimalUpDown}" BasedOn="{StaticResource MaterialDesignFilledUpDownBase}" /> <Style x:Key="MaterialDesignOutlinedUpDownBase" TargetType="{x:Type wpf:UpDownBase}" BasedOn="{StaticResource MaterialDesignFloatingHintUpDownBase}"> <Style.Resources> <Style x:Key="NestedTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource MaterialDesignOutlinedTextBox}" /> </Style.Resources> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.TextBox.OutlineBorder}" /> <Setter Property="BorderThickness" Value="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.OutlinedTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4" /> </Style> <Style x:Key="MaterialDesignOutlinedNumericUpDown" TargetType="{x:Type wpf:NumericUpDown}" BasedOn="{StaticResource MaterialDesignOutlinedUpDownBase}" /> <Style x:Key="MaterialDesignOutlinedDecimalUpDown" TargetType="{x:Type wpf:DecimalUpDown}" BasedOn="{StaticResource MaterialDesignOutlinedUpDownBase}" /> </ResourceDictionary> |