风格事件设置者找不到问题所在

问题描述 投票:0回答:1

这是我的风格部分。

<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>

给我带来麻烦的部分,我找不到为什么它说: 该事件不是一个根性事件.

<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();
}

谁能说说这是什么问题,怎么解决?

c# wpf
1个回答
2
投票

https:/docs.microsoft.comen-usdotnetapisystem.windows.uielement.ismousecapturewithinchanged?view=netcore-3.1。

正如错误信息所告知的那样。IsMouseCaptureWithinChanged 不是一个路由事件,而是一个CLR事件。文档中清楚地解释了这一点。

对该事件做出反应的唯一方法是将事件处理程序附加到必要的UI元素上。

© www.soinside.com 2019 - 2024. All rights reserved.