0

最初の文字の前に CaretIndex を設定するコードは使用できません。

ここに私のXAMLコードがあります:

    <Border CornerRadius="5">
        <ScrollViewer x:Name="scDetailedText" Grid.Column="0" BorderBrush="Transparent" BorderThickness="0">
            <TextBox x:Name="ucDetailedText" Text="{Binding DetailsText}" Style="{StaticResource SearchDetailsTextStyle}" BorderBrush="Transparent" BorderThickness="0"/>
        </ScrollViewer>
    </Border>

そして、ここに私のバックエンドコードがあります:

void ucDetailedText_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    if (e.NewValue.Equals(true))
    {
        ucDetailedText.Focus();
        ucDetailedText.Select(0, 0);
    }
}

絞り込みましたが、スタイルがコードを妨げているようです。

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type TextBox}">
            <TextBox x:Name="PART_EditableTextBox" MinWidth="50" Width="{Binding TextWidth}" Padding="3" BorderBrush="Transparent"
                             VerticalAlignment="Center"  Background="Transparent"
                             **This line causes the problem** ~> Text="{Binding Text, RelativeSource={RelativeSource Mode=TemplatedParent}, UpdateSourceTrigger=PropertyChanged}"
                             HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
        </ControlTemplate>
    </Setter.Value>
</Setter>

原因を以下に示しましたが、なぜそれが起こるのか考えられますか?

4

0 に答える 0