.NET 4.8 WPF MaterialDesign SmartHint显示黑边异常问题
MaterialDesignOutlinedTextBox更新后黑色侧边栏问题修复
我们在WPF项目中使用MaterialDesignThemes库已有一段时间,最近更新库后,应用了MaterialDesignOutlinedTextBox样式的TextBox控件出现了异常的黑色侧边栏问题。
问题复现的控件XAML代码
<TextBox Grid.Row="1" Style="{StaticResource MaterialDesignOutlinedTextBox}" GotFocus="SizeTextBox_GotFocus" LostFocus="TextBox_LostFocus" PreviewKeyDown="TextBox_PreviewKeyDown" materialDesign:HintAssist.Hint="{x:Static p:Resources.Height}" FontSize="25" Height="60" Padding="10" Margin="20" materialDesign:TextFieldAssist.SuffixText="{Binding Unit, Converter={StaticResource UnitAbbreviation}}" BorderBrush="{StaticResource PrimaryColorBrush}" materialDesign:HintAssist.Background="{StaticResource ThirdColorBrush}" materialDesign:ValidationAssist.Background="{StaticResource ThirdColorBrush}"> <TextBox.Text> <Binding Path="SelectedParameter.Height" UpdateSourceTrigger="Explicit"> <Binding.ValidationRules> <utility:NumericValidationRule/> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox>
已尝试的无效方案
- 修改
materialDesign:HintAssist下的所有属性,未解决问题 - 自定义
SmartHint样式:
仅能修改部分属性,边距、内边距等设置无效果,黑色侧边栏问题依然存在<TextBox.Resources> <Style TargetType="{x:Type materialDesign:SmartHint}"> <Setter Property="Background" Value="red"/> </Style> </TextBox.Resources>
有效修复方案
经确认该问题由库更新导致,通过设置materialDesign:HintAssist.HintPaddingBrush="Transparent"即可解决,修改后的TextBox代码如下:
<TextBox Grid.Row="1" Style="{StaticResource MaterialDesignOutlinedTextBox}" GotFocus="SizeTextBox_GotFocus" LostFocus="TextBox_LostFocus" PreviewKeyDown="TextBox_PreviewKeyDown" materialDesign:HintAssist.Hint="{x:Static p:Resources.Height}" FontSize="25" Height="60" Padding="10" Margin="20" materialDesign:TextFieldAssist.SuffixText="{Binding Unit, Converter={StaticResource UnitAbbreviation}}" BorderBrush="{StaticResource PrimaryColorBrush}" materialDesign:HintAssist.Background="{StaticResource ThirdColorBrush}" materialDesign:ValidationAssist.Background="{StaticResource ThirdColorBrush}" materialDesign:HintAssist.HintPaddingBrush="Transparent"> <!-- 添加此行修复 --> <TextBox.Text> <Binding Path="SelectedParameter.Height" UpdateSourceTrigger="Explicit"> <Binding.ValidationRules> <utility:NumericValidationRule/> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox>
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

