Skip to content

Commit 67bd209

Browse files
Add missing styles for RichTextBox (#3535)
1 parent e9ac252 commit 67bd209

File tree

2 files changed

+165
-6
lines changed

2 files changed

+165
-6
lines changed

MainDemo.Wpf/SmartHint.xaml

Lines changed: 137 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,9 @@
326326
<TextBox x:Name="MaterialDesignFloatingHintTextBoxDefaults" Style="{StaticResource MaterialDesignFloatingHintTextBox}" />
327327
<TextBox x:Name="MaterialDesignFilledTextBoxDefaults" Style="{StaticResource MaterialDesignFilledTextBox}" />
328328
<TextBox x:Name="MaterialDesignOutlinedTextBoxDefaults" Style="{StaticResource MaterialDesignOutlinedTextBox}" />
329-
<RichTextBox x:Name="MaterialDesignRichTextBoxDefaults" Style="{StaticResource MaterialDesignRichTextBox}" />
329+
<RichTextBox x:Name="MaterialDesignFloatingHintRichTextBoxDefaults" Style="{StaticResource MaterialDesignFloatingHintRichTextBox}" />
330+
<RichTextBox x:Name="MaterialDesignFilledRichTextBoxDefaults" Style="{StaticResource MaterialDesignFilledRichTextBox}" />
331+
<RichTextBox x:Name="MaterialDesignOutlinedRichTextBoxDefaults" Style="{StaticResource MaterialDesignOutlinedRichTextBox}" />
330332
<PasswordBox x:Name="MaterialDesignFloatingHintPasswordBoxDefaults" Style="{StaticResource MaterialDesignFloatingHintPasswordBox}" />
331333
<PasswordBox x:Name="MaterialDesignFilledPasswordBoxDefaults" Style="{StaticResource MaterialDesignFilledPasswordBox}" />
332334
<PasswordBox x:Name="MaterialDesignOutlinedPasswordBoxDefaults" Style="{StaticResource MaterialDesignOutlinedPasswordBox}" />
@@ -582,17 +584,146 @@
582584
Text="RichTextBox styles" />
583585
<Grid>
584586
<Grid.Resources>
585-
<Style TargetType="{x:Type RichTextBox}" BasedOn="{StaticResource MaterialDesignRichTextBox}">
587+
<Style TargetType="{x:Type RichTextBox}" BasedOn="{StaticResource MaterialDesignFloatingHintRichTextBox}">
588+
<Setter Property="AcceptsReturn" Value="False" />
586589
<Setter Property="FontSize" Value="{Binding SelectedFontSize, Converter={StaticResource FontSizeConverter}}" />
587590
<Setter Property="Height" Value="{Binding SelectedCustomHeight}" />
588591

589-
<!-- TODO: This is needed in order to avoid the RichTextBox only showing a single character per line?!?! There must be a bug somewhere! Min/MinWidth both "work" -->
592+
<!-- TODO: This is needed in order to avoid the RichTextBox only showing a single character per line?!?! There must be a bug somewhere! Min/MinWidth both "work". Also happens with default style!! -->
590593
<!-- Also note that it does not work correctly, it now simply allows characters up to the width defined below before wrapping to the next line. -->
591-
<Setter Property="MinWidth" Value="100" />
594+
<Setter Property="MinWidth" Value="180" />
592595
<Setter Property="Padding">
593596
<Setter.Value>
594597
<MultiBinding Converter="{StaticResource CustomPaddingConverter}">
595-
<Binding ElementName="MaterialDesignRichTextBoxDefaults" Path="Padding" />
598+
<Binding ElementName="MaterialDesignFloatingHintRichTextBoxDefaults" Path="Padding" />
599+
<Binding Path="ApplyCustomPadding" />
600+
<Binding Path="SelectedCustomPadding" />
601+
</MultiBinding>
602+
</Setter.Value>
603+
</Setter>
604+
<Setter Property="VerticalContentAlignment" Value="{Binding SelectedVerticalAlignment}" />
605+
<Setter Property="local:SmartHint.RichTextBoxText" Value="{Binding RelativeSource={RelativeSource Self}, Path=Tag}" />
606+
<Setter Property="materialDesign:HintAssist.FontFamily" Value="{Binding SelectedFontFamily}" />
607+
<Setter Property="materialDesign:HintAssist.IsFloating" Value="{Binding FloatHint}" />
608+
<Setter Property="materialDesign:TextFieldAssist.HasClearButton" Value="{Binding ShowClearButton}" />
609+
<Setter Property="materialDesign:TextFieldAssist.HasLeadingIcon" Value="{Binding ShowLeadingIcon}" />
610+
<Setter Property="materialDesign:TextFieldAssist.HasTrailingIcon" Value="{Binding ShowTrailingIcon}" />
611+
<Setter Property="materialDesign:TextFieldAssist.LeadingIcon" Value="{StaticResource LeadingIcon}" />
612+
<Setter Property="materialDesign:TextFieldAssist.LeadingIconSize" Value="{Binding SelectedLeadingIconSize}" />
613+
<Setter Property="materialDesign:TextFieldAssist.PrefixText" Value="{Binding PrefixText}" />
614+
<Setter Property="materialDesign:TextFieldAssist.SuffixText" Value="{Binding SuffixText}" />
615+
<Setter Property="materialDesign:TextFieldAssist.TrailingIcon" Value="{StaticResource TrailingIcon}" />
616+
<Setter Property="materialDesign:TextFieldAssist.TrailingIconSize" Value="{Binding SelectedTrailingIconSize}" />
617+
<Setter Property="materialDesign:TextFieldAssist.IconVerticalAlignment" Value="{Binding SelectedIconVerticalAlignment}" />
618+
<Setter Property="materialDesign:TextFieldAssist.RippleOnFocusEnabled" Value="{Binding RippleOnFocus}" />
619+
<Setter Property="materialDesign:TextFieldAssist.PrefixTextVisibility" Value="{Binding SelectedPrefixVisibility}" />
620+
<Setter Property="materialDesign:TextFieldAssist.PrefixTextHintBehavior" Value="{Binding SelectedPrefixHintBehavior}" />
621+
<Setter Property="materialDesign:TextFieldAssist.SuffixTextVisibility" Value="{Binding SelectedSuffixVisibility}" />
622+
<Setter Property="materialDesign:TextFieldAssist.SuffixTextHintBehavior" Value="{Binding SelectedSuffixHintBehavior}" />
623+
<Setter Property="materialDesign:TextFieldAssist.NewSpecHighlightingEnabled" Value="{Binding NewSpecHighlightingEnabled}" />
624+
</Style>
625+
</Grid.Resources>
626+
<Grid.ColumnDefinitions>
627+
<ColumnDefinition SharedSizeGroup="SizeGroupStyleName" />
628+
<ColumnDefinition x:Name="RichTextBoxColumnDefinition" Width="*" />
629+
<ColumnDefinition Width="*" />
630+
<ColumnDefinition Width="*" />
631+
<ColumnDefinition Width="*" />
632+
</Grid.ColumnDefinitions>
633+
634+
<TextBlock Grid.Column="0" Style="{StaticResource StyleNameIndicator}">MaterialDesignFloatingHintRichTextBox</TextBlock>
635+
<local:InputElementContentControl Grid.Column="1">
636+
<RichTextBox />
637+
</local:InputElementContentControl>
638+
<local:InputElementContentControl Grid.Column="2">
639+
<RichTextBox HorizontalContentAlignment="Center" />
640+
</local:InputElementContentControl>
641+
<local:InputElementContentControl Grid.Column="3">
642+
<RichTextBox HorizontalContentAlignment="Right" />
643+
</local:InputElementContentControl>
644+
<local:InputElementContentControl Grid.Column="4">
645+
<RichTextBox HorizontalContentAlignment="Stretch" />
646+
</local:InputElementContentControl>
647+
</Grid>
648+
649+
<Grid>
650+
<Grid.Resources>
651+
<Style TargetType="{x:Type RichTextBox}" BasedOn="{StaticResource MaterialDesignFilledRichTextBox}">
652+
<Setter Property="AcceptsReturn" Value="False" />
653+
<Setter Property="FontSize" Value="{Binding SelectedFontSize, Converter={StaticResource FontSizeConverter}}" />
654+
<Setter Property="Height" Value="{Binding SelectedCustomHeight}" />
655+
656+
<!-- TODO: This is needed in order to avoid the RichTextBox only showing a single character per line?!?! There must be a bug somewhere! Min/MinWidth both "work". Also happens with default style!! -->
657+
<!-- Also note that it does not work correctly, it now simply allows characters up to the width defined below before wrapping to the next line. -->
658+
<Setter Property="MinWidth" Value="180" />
659+
<Setter Property="Padding">
660+
<Setter.Value>
661+
<MultiBinding Converter="{StaticResource CustomPaddingConverter}">
662+
<Binding ElementName="MaterialDesignFilledRichTextBoxDefaults" Path="Padding" />
663+
<Binding Path="ApplyCustomPadding" />
664+
<Binding Path="SelectedCustomPadding" />
665+
</MultiBinding>
666+
</Setter.Value>
667+
</Setter>
668+
<Setter Property="VerticalContentAlignment" Value="{Binding SelectedVerticalAlignment}" />
669+
<Setter Property="local:SmartHint.RichTextBoxText" Value="{Binding RelativeSource={RelativeSource Self}, Path=Tag}" />
670+
<Setter Property="materialDesign:HintAssist.FontFamily" Value="{Binding SelectedFontFamily}" />
671+
<Setter Property="materialDesign:HintAssist.IsFloating" Value="{Binding FloatHint}" />
672+
<Setter Property="materialDesign:TextFieldAssist.HasClearButton" Value="{Binding ShowClearButton}" />
673+
<Setter Property="materialDesign:TextFieldAssist.HasLeadingIcon" Value="{Binding ShowLeadingIcon}" />
674+
<Setter Property="materialDesign:TextFieldAssist.HasTrailingIcon" Value="{Binding ShowTrailingIcon}" />
675+
<Setter Property="materialDesign:TextFieldAssist.LeadingIcon" Value="{StaticResource LeadingIcon}" />
676+
<Setter Property="materialDesign:TextFieldAssist.LeadingIconSize" Value="{Binding SelectedLeadingIconSize}" />
677+
<Setter Property="materialDesign:TextFieldAssist.PrefixText" Value="{Binding PrefixText}" />
678+
<Setter Property="materialDesign:TextFieldAssist.SuffixText" Value="{Binding SuffixText}" />
679+
<Setter Property="materialDesign:TextFieldAssist.TrailingIcon" Value="{StaticResource TrailingIcon}" />
680+
<Setter Property="materialDesign:TextFieldAssist.TrailingIconSize" Value="{Binding SelectedTrailingIconSize}" />
681+
<Setter Property="materialDesign:TextFieldAssist.IconVerticalAlignment" Value="{Binding SelectedIconVerticalAlignment}" />
682+
<Setter Property="materialDesign:TextFieldAssist.RippleOnFocusEnabled" Value="{Binding RippleOnFocus}" />
683+
<Setter Property="materialDesign:TextFieldAssist.PrefixTextVisibility" Value="{Binding SelectedPrefixVisibility}" />
684+
<Setter Property="materialDesign:TextFieldAssist.PrefixTextHintBehavior" Value="{Binding SelectedPrefixHintBehavior}" />
685+
<Setter Property="materialDesign:TextFieldAssist.SuffixTextVisibility" Value="{Binding SelectedSuffixVisibility}" />
686+
<Setter Property="materialDesign:TextFieldAssist.SuffixTextHintBehavior" Value="{Binding SelectedSuffixHintBehavior}" />
687+
<Setter Property="materialDesign:TextFieldAssist.NewSpecHighlightingEnabled" Value="{Binding NewSpecHighlightingEnabled}" />
688+
</Style>
689+
</Grid.Resources>
690+
<Grid.ColumnDefinitions>
691+
<ColumnDefinition SharedSizeGroup="SizeGroupStyleName" />
692+
<ColumnDefinition Width="*" />
693+
<ColumnDefinition Width="*" />
694+
<ColumnDefinition Width="*" />
695+
<ColumnDefinition Width="*" />
696+
</Grid.ColumnDefinitions>
697+
698+
<TextBlock Grid.Column="0" Style="{StaticResource StyleNameIndicator}">MaterialDesignFilledHintRichTextBox</TextBlock>
699+
<local:InputElementContentControl Grid.Column="1">
700+
<RichTextBox />
701+
</local:InputElementContentControl>
702+
<local:InputElementContentControl Grid.Column="2">
703+
<RichTextBox HorizontalContentAlignment="Center" />
704+
</local:InputElementContentControl>
705+
<local:InputElementContentControl Grid.Column="3">
706+
<RichTextBox HorizontalContentAlignment="Right" />
707+
</local:InputElementContentControl>
708+
<local:InputElementContentControl Grid.Column="4">
709+
<RichTextBox HorizontalContentAlignment="Stretch" />
710+
</local:InputElementContentControl>
711+
</Grid>
712+
713+
<Grid>
714+
<Grid.Resources>
715+
<Style TargetType="{x:Type RichTextBox}" BasedOn="{StaticResource MaterialDesignOutlinedRichTextBox}">
716+
<Setter Property="AcceptsReturn" Value="False" />
717+
<Setter Property="FontSize" Value="{Binding SelectedFontSize, Converter={StaticResource FontSizeConverter}}" />
718+
<Setter Property="Height" Value="{Binding SelectedCustomHeight}" />
719+
720+
<!-- TODO: This is needed in order to avoid the RichTextBox only showing a single character per line?!?! There must be a bug somewhere! Min/MinWidth both "work". Also happens with default style!! -->
721+
<!-- Also note that it does not work correctly, it now simply allows characters up to the width defined below before wrapping to the next line. -->
722+
<Setter Property="MinWidth" Value="180" />
723+
<Setter Property="Padding">
724+
<Setter.Value>
725+
<MultiBinding Converter="{StaticResource CustomPaddingConverter}">
726+
<Binding ElementName="MaterialDesignOutlinedRichTextBoxDefaults" Path="Padding" />
596727
<Binding Path="ApplyCustomPadding" />
597728
<Binding Path="SelectedCustomPadding" />
598729
</MultiBinding>
@@ -628,7 +759,7 @@
628759
<ColumnDefinition Width="*" />
629760
</Grid.ColumnDefinitions>
630761

631-
<TextBlock Grid.Column="0" Style="{StaticResource StyleNameIndicator}">MaterialDesignRichTextBox</TextBlock>
762+
<TextBlock Grid.Column="0" Style="{StaticResource StyleNameIndicator}">MaterialDesignOutlinedRichTextBox</TextBlock>
632763
<local:InputElementContentControl Grid.Column="1">
633764
<RichTextBox />
634765
</local:InputElementContentControl>

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.RichTextBox.xaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,33 @@
1010
BasedOn="{StaticResource MaterialDesignTextBoxBase}">
1111
<Setter Property="wpf:TextFieldAssist.CharacterCounterStyle" Value="{x:Null}" />
1212
<Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="-4 0 1 0" />
13+
<Setter Property="Padding" Value="{x:Static wpf:Constants.TextBoxDefaultPadding}" />
14+
</Style>
15+
16+
<Style x:Key="MaterialDesignFloatingHintRichTextBox"
17+
TargetType="RichTextBox"
18+
BasedOn="{StaticResource MaterialDesignRichTextBox}">
19+
<Setter Property="wpf:HintAssist.IsFloating" Value="True" />
20+
<Setter Property="Padding" Value="{x:Static wpf:Constants.FloatingTextBoxDefaultPadding}" />
21+
</Style>
22+
23+
<Style x:Key="MaterialDesignFilledRichTextBox"
24+
TargetType="RichTextBox"
25+
BasedOn="{StaticResource MaterialDesignFloatingHintRichTextBox}">
26+
<Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.TextBox.FilledBackground}" />
27+
<Setter Property="Padding" Value="{x:Static wpf:Constants+TemporaryConstants.FilledTextBoxDefaultPaddingNew}" />
28+
<Setter Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" />
29+
<Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4,4,0,0" />
30+
<Setter Property="wpf:TextFieldAssist.UnderlineCornerRadius" Value="0" />
31+
</Style>
32+
33+
<Style x:Key="MaterialDesignOutlinedRichTextBox"
34+
TargetType="RichTextBox"
35+
BasedOn="{StaticResource MaterialDesignFloatingHintRichTextBox}">
36+
<Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.TextBox.OutlineBorder}" />
37+
<Setter Property="BorderThickness" Value="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" />
38+
<Setter Property="Padding" Value="{x:Static wpf:Constants.OutlinedTextBoxDefaultPadding}" />
39+
<Setter Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" />
40+
<Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4" />
1341
</Style>
1442
</ResourceDictionary>

0 commit comments

Comments
 (0)