c# - 样式事件设置器找不到问题所在
问题描述
这是我的风格部分:
<Style x:Key="anan" TargetType="{x:Type TextBox}">
<Setter Property="TextElement.FontFamily" Value="/Fonts/#Minecraft"/>
<Setter Property="Foreground" Value="#FF19198B"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Margin" Value="10 8"/>
<EventSetter Event="PreviewTextInput" Handler="Left_TextBoxs_previewtextinput"/>
<EventSetter Event="GotFocus" Handler="Left_TextBoxs_get_GotFocus"/>
<EventSetter Event="GotMouseCapture" Handler="current_x_get_GotMouseCapture"/>
<EventSetter Event="IsMouseCaptureWithinChanged" Handler="current_x_get_IsMouseCaptureWithinChanged"/>
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Foreground" Value="#FF66B616"/>
</Trigger>
</Style.Triggers>
</Style>
给我带来麻烦的部分我找不到为什么它说The event is not a rooted event。
<EventSetter Event="IsMouseCaptureWithinChanged" Handler="current_x_get_IsMouseCaptureWithinChanged"/>
...这是xaml.cs
private void Left_TextBoxs_get_GotFocus(object sender, RoutedEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.CaptureMouse();
textBox.SelectAll();
textBox.Focus();
}
private void current_x_get_GotMouseCapture(object sender, MouseEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.SelectAll();
}
private void current_x_get_IsMouseCaptureWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.SelectAll();
}
有人可以说它有什么问题以及如何解决吗?
解决方案
正如错误消息通知您的那样,IsMouseCaptureWithinChanged
不是路由事件,而是 CLR 事件。文档清楚地解释了这一点。
对此事件作出反应的唯一方法是将事件处理程序附加到必要的 UI 元素。