C# 事件“;TextChanged";它被多次发射
我在这里问了一个问题,如何垂直集中richtextbox: 以下代码: XAML:C# 事件“;TextChanged";它被多次发射,c#,wpf,richtextbox,C#,Wpf,Richtextbox,我在这里问了一个问题,如何垂直集中richtextbox: 以下代码: XAML: <Border BorderBrush="Black" BorderThickness="1" Margin="10,51,385,14.2" Grid.ColumnSpan="2"> <Grid x:Name="Grid_Principal" Height="285" Background="Black" > <Grid.Ro
<Border BorderBrush="Black" BorderThickness="1" Margin="10,51,385,14.2" Grid.ColumnSpan="2">
<Grid x:Name="Grid_Principal" Height="285" Background="Black" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer x:Name="scrollviewer" Grid.Row="1" MaxHeight="285" VerticalScrollBarVisibility="Auto" Margin="10,0.4,0.4,0.2">
<RichTextBox
x:Name="richtextbox"
Width="332.4"
VerticalAlignment="Top"
FontSize="14"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
UseLayoutRounding="False"
VerticalScrollBarVisibility="Auto"
Block.TextAlignment="Center"
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
BorderThickness="0"
Background="{x:Null}"
Foreground="White"
TextChanged="Richtextbox_TextChanged">
<FlowDocument>
<Paragraph>
This is flow content and you can
<Bold>edit me!</Bold>
</Paragraph>
</FlowDocument>
</RichTextBox>
</ScrollViewer>
</Grid>
</Border>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
richtextbox.AppendText("Hello world, I'm writing in C#");
}
private void Richtextbox_TextChanged(object sender, TextChangedEventArgs e)
{
//This event is fired multiple times
}
TextChanged
事件被激发数次,在调试器模式下完成,在此处激发6次
我想在文本更改时调用一个函数,有什么解决方案吗?如前所述,每次击键时文本都会更改,因此每次都会触发事件 实际上,你必须决定你想要什么样的行为。我通常做的一些事情: 需要“回车”键确认文本,然后(伪代码): 要更改焦点以确认文本:
LostFocus="Richtextbox_TextChanged"> (XAML),
doWhatYouWannaDo(); (CODE)
代码将放置在Richtextbox_TextChanged()的主体中,或者以您想要的方式命名
编辑:您还可以在经过一段时间后(即在计时器事件中)验证文本。但我不喜欢这个,因为它与用户的交互是不确定的。
TextChanged
每次文本框中的文本发生变化时都会触发(如果键入“hello”,则会触发5次,每个字符一次);这就是它的工作原理。@Josh这部分我知道,请看我的帖子,我编辑过。LostFocus事件帮助了我。
LostFocus="Richtextbox_TextChanged"> (XAML),
doWhatYouWannaDo(); (CODE)