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