当我设置AppContext.SetSwitch(“Switch.System.Windows.Controls.Text. TextBox AdornerForTextboxSelectionRendering”,false); TextBox行为正常时,RichTextBox无法显示文本。这是什么原因?
XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Content="TextBox" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25"></Label>
<TextBox Height="80" Width="500" Grid.Column="1" SelectionOpacity="1"></TextBox>
<Label Content="RichTextBox" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25"></Label>
<RichTextBox Height="80" Width="500" Grid.Row="1" Grid.Column="1" SelectionOpacity="1" Style="{StaticResource RichTextBoxStyle}"></RichTextBox>
</Grid>
字符串
.Net6:
Codebedhind:
public MainWindow()
{
AppContext.SetSwitch("Switch.System.Windows.Controls.Text.UseAdornerForTextboxSelectionRendering", false);
InitializeComponent();
}
型
.NET框架4.8
App.config:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.Text.UseAdornerForTextboxSelectionRendering=false"/>
</runtime>
型
是否可以使RichTextBox的结果与TextBox的结果行为相同而不更改xaml代码?
结果:x1c 0d1x
1条答案
按热度按时间d4so4syb1#
这一结果的原因是什么?
开关仅适用于
TextBox
和PasswordBox
,如docs中所述。是否可以使RichTextBox的结果与TextBox的结果行为相同而不更改xaml代码?
如果您不想使用XAML标记,那么以编程方式设置
SelectionOpacity
?如果您可以在代码隐藏中调用AppContext.SetSwitch
方法,那么您也可以设置控件的属性。