Установщик событий стиля не может найти, что не так - PullRequest
0 голосов
/ 27 мая 2020

Вот часть моего стиля:

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

Может кто подскажет, что с ним не так и как исправить?

1 Ответ

2 голосов
/ 27 мая 2020

https://docs.microsoft.com/en-us/dotnet/api/system.windows.uielement.ismousecapturewithinchanged?view=netcore-3.1

Как сообщается в сообщении об ошибке, IsMouseCaptureWithinChanged не перенаправленное событие, а событие CLR. В документации это четко объясняется.

Единственный способ отреагировать на это событие - присоединить обработчик событий к необходимым элементам пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...