wpf AppContext.SetSwitch(“Switch.System.Windows.Controls.Text. NoteAdornerForTextboxSelectionRendering”,false);不适用于RichTextBox?

ljsrvy3e  于 12个月前  发布在  Windows
关注(0)|答案(1)|浏览(137)

当我设置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

d4so4syb

d4so4syb1#

这一结果的原因是什么?
开关仅适用于TextBoxPasswordBox,如docs中所述。
是否可以使RichTextBox的结果与TextBox的结果行为相同而不更改xaml代码?
如果您不想使用XAML标记,那么以编程方式设置SelectionOpacity?如果您可以在代码隐藏中调用AppContext.SetSwitch方法,那么您也可以设置控件的属性。

相关问题