текстовое поле с правилами проверки все еще показывает, когда панель перемещается поверх него - PullRequest
0 голосов
/ 14 октября 2019

У меня есть приложение wpf MVVM, и в пользовательском элементе управления есть текстовое поле с проверкой. Если есть ошибка, текстовое поле имеет красный контур и красный овальный восклицательный знак рядом с ним. Моя проблема в том, что когда панель перетаскивается поверх текстового поля, когда появляется ошибка, красная полоса по-прежнему остается. например

enter image description here

enter image description here

это TextBox:

    <TextBox Margin="2,9" VerticalAlignment="Center"  Width="115" IsReadOnly="True" Style="{StaticResource TextErrorStyle}" >
                <TextBox.Text >
                    <Binding Path="SelectedInfo" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True">
                        <Binding.ValidationRules>
                            <ExceptionValidationRule></ExceptionValidationRule>
                        </Binding.ValidationRules>
                    </Binding>
                </TextBox.Text>
            </TextBox>

 <Style x:Key="TextErrorStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource Controls.TextBox}">
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="Margin" Value="0,2,40,2" />
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel LastChildFill="true">
                        <Border Background="Red" DockPanel.Dock="right" Margin="5,0,0,0" Width="20" Height="20" CornerRadius="10"
                            ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
                            <TextBlock Text="!" VerticalAlignment="center" HorizontalAlignment="center" FontWeight="Bold" Foreground="white" />
                        </Border>
                        <AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
                            <Border BorderBrush="red" BorderThickness="1" />
                        </AdornedElementPlaceholder>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Существует ли функция sendtoback или другая опция, которая помещает это текстовое поле в фоновый режим при перетаскивании панели?

1 Ответ

0 голосов
/ 15 октября 2019

У меня была такая же проблема , и она была решена с помощью AdornerDecorator. Оберните ваш TextBox с помощью AdornerDecorator и попробуйте снова.

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